12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- # 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: "Integration Test"
- # Run on every push (tag, branch) and pull_request
- on: [ pull_request, push, merge_group ]
- env:
- CARGO_TERM_COLOR: always
- jobs:
- integrationtest:
- name: integrationtest
- # No "needs" to make CI faster.
- runs-on: ubuntu-latest
- steps:
- - name: Check out
- uses: actions/checkout@v4
- - uses: cachix/install-nix-action@V27
- with:
- # This channel is only required to invoke "nix-shell".
- # Everything inside that nix-shell will use a pinned version of
- # nixpkgs.
- nix_path: nixpkgs=channel:nixos-23.11
- - uses: DeterminateSystems/magic-nix-cache-action@main
- - name: Set up cargo cache
- uses: actions/cache@v4
- continue-on-error: false
- with:
- path: |
- ~/.cargo/bin/
- ~/.cargo/registry/index/
- ~/.cargo/registry/cache/
- ~/.cargo/git/db/
- integration-test/bins/target/
- # Hash over Cargo.toml and Cargo.lock, as this might be copied to
- # projects that do not have a Cargo.lock in their repository tree!
- key: ${{ runner.os }}-${{ github.job }}-${{ hashFiles('integration-test/**/Cargo.toml', 'integration-test/**/Cargo.lock', 'integration-test/bins/rust-toolchain.toml') }}
- # Have all the "copying into Nix store" messages in a dedicated step for
- # better log visibility.
- - run: nix-shell --run "echo OK"
- # Now, run the actual test.
- - run: nix-shell --run run-integrationtest
|