diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bdc0936a3a..7e1c8d0b09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,51 +17,6 @@ on: workflow_dispatch: jobs: - check: - name: Run checks on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, macOS-latest, windows-latest] - - steps: - - name: Clone this repository - uses: actions/checkout@v4 - - - name: Install Rust toolchain - run: | - rustup show - rustup component add rustfmt clippy - - - name: Code format check - run: cargo fmt --check - env: - CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse - - - name: Clippy - run: cargo clippy --all-targets -- --deny warnings - env: - CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse - - - name: Clippy unstable targets - run: cargo clippy --all-targets --features unstable -- --deny warnings - env: - CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse - - - name: Clippy all features - if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest' }} - run: cargo clippy --all-targets --all-features -- --deny warnings - - - name: Install generic no_std target - # Generic no_std target architecture is x86_64-unknown-none - run: rustup target add x86_64-unknown-none - - - name: Perform no_std checks - run: cargo check --bin nostd_check --target x86_64-unknown-none --manifest-path ci/nostd-check/Cargo.toml - env: - CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse - test: name: Run tests on ${{ matrix.os }} runs-on: ${{ matrix.os }} @@ -74,9 +29,15 @@ jobs: - name: Clone this repository uses: actions/checkout@v4 + - run: du -h -d 1 . + - run: df -h + - name: Install latest Rust toolchain run: rustup show + - run: du -h -d 1 . + - run: df -h + - name: Set rustflags shell: bash run: | @@ -84,15 +45,24 @@ jobs: *windows*) echo "RUSTFLAGS=-Clink-arg=/DEBUG:NONE" >> $GITHUB_ENV ;; esac + - run: du -h -d 1 . + - run: df -h + - name: Install latest nextest uses: taiki-e/install-action@nextest + - run: du -h -d 1 . + - run: df -h + - name: Run tests run: cargo nextest run --exclude zenoh-examples --exclude zenoh-plugin-example --workspace env: CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse ASYNC_STD_THREAD_COUNT: 4 + - run: du -h -d 1 . + - run: df -h + - name: Run tests with SHM if: ${{ matrix.os == 'ubuntu-latest' }} run: cargo nextest run -F shared-memory -F transport_unixpipe -p zenoh-transport @@ -100,26 +70,18 @@ jobs: CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse ASYNC_STD_THREAD_COUNT: 4 + - run: du -h -d 1 . + - run: df -h + - name: Check for feature leaks if: ${{ matrix.os == 'ubuntu-latest' }} run: cargo nextest run -p zenohd --no-default-features + - run: du -h -d 1 . + - run: df -h + - name: Run doctests run: cargo test --doc env: CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse ASYNC_STD_THREAD_COUNT: 4 - - # NOTE: In GitHub repository settings, the "Require status checks to pass - # before merging" branch protection rule ensures that commits are only merged - # from branches where specific status checks have passed. These checks are - # specified manually as a list of workflow job names. Thus we use this extra - # job to signal whether all CI checks have passed. - ci: - name: CI status checks - runs-on: ubuntu-latest - needs: [check, test] - if: always() - steps: - - name: Check whether all jobs pass - run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")'