# CI for the whole Cargo workspace. Although having two relatively independent # crates in this workspace (as they do not get released together, as for example # tokio with its sub crates), a PR for a certain CI may report errors in the # other workspace members. I think this is unfortunate. I've experimented with # CI runs per workspace member but the complexity in the end was not worth it. # Instead, it is the right thing that the CI always covers the whole repository # and that it is as stable as possible. name: "Cargo workspace" # Run on every push (tag, branch) and pull_request on: [ pull_request, push, workflow_dispatch, merge_group ] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: ### Regular Build ######################### build_msrv: name: build (msrv) uses: ./.github/workflows/_build-rust.yml with: rust-version: 1.70.0 # MSRV do-style-check: false features: builder build_stable: name: build (stable) uses: ./.github/workflows/_build-rust.yml with: rust-version: stable do-style-check: false features: builder build_nightly: name: build (nightly) uses: ./.github/workflows/_build-rust.yml with: rust-version: nightly do-style-check: false features: builder,unstable ### no-std Build ######################### build_nostd_msrv: name: build no_std (msrv) needs: build_msrv uses: ./.github/workflows/_build-rust.yml with: rust-version: 1.70.0 # MSRV do-style-check: false rust-target: thumbv7em-none-eabihf features: builder build_nostd_stable: name: build no_std (stable) needs: build_stable uses: ./.github/workflows/_build-rust.yml with: rust-version: stable do-style-check: false rust-target: thumbv7em-none-eabihf features: builder # Also tests the build one time without the "builder" feature. build_nostd_stable_no_builder: name: build no_std (stable) [w/o builder] needs: build_stable uses: ./.github/workflows/_build-rust.yml with: rust-version: stable do-style-check: false rust-target: thumbv7em-none-eabihf # We perform one single run also in Windows. This should be sufficient to # check that devs can also use this on Windows. build_nostd_stable_windows: name: build no_std (stable) [Windows] needs: build_stable uses: ./.github/workflows/_build-rust.yml with: runs-on: windows-latest # Quirk for the Windows powershell and its handling of empty arguments. # features: > # '""' rust-version: stable do-style-check: false rust-target: thumbv7em-none-eabihf features: builder build_nostd_nightly: name: build no_std (nightly) needs: build_nightly uses: ./.github/workflows/_build-rust.yml with: rust-version: nightly do-style-check: false rust-target: thumbv7em-none-eabihf features: builder,unstable ### Style Checks + Doc ##################### style_msrv: name: style (msrv) needs: build_msrv uses: ./.github/workflows/_build-rust.yml with: rust-version: 1.70.0 # MSRV do-style-check: true do-test: false features: builder style_stable: name: style (stable) needs: build_stable uses: ./.github/workflows/_build-rust.yml with: rust-version: stable do-style-check: true do-test: false features: builder style_nightly: name: style (nightly) needs: build_nightly uses: ./.github/workflows/_build-rust.yml with: rust-version: nightly do-style-check: true do-test: false features: builder,unstable miri: name: tests with miri (nightly) needs: build_nightly uses: ./.github/workflows/_build-rust.yml with: rust-version: nightly do-style-check: false do-test: false do-miri: true features: builder,unstable