Continuous integration run by github-merge-queue #3658
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Continuous integration | |
| run-name: Continuous integration run by ${{ github.actor }} | |
| on: | |
| pull_request: | |
| merge_group: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 7 * * *" # Catch breakage from upstream Verus `main` | |
| env: | |
| kind_version: 0.23.0 | |
| go_version: "^1.20" | |
| jobs: | |
| setup-toolchain: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| verus-sha: ${{ steps.verus-sha.outputs.sha }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Get latest Verus main commit SHA | |
| id: verus-sha | |
| run: | | |
| SHA="$(git ls-remote https://github.com/verus-lang/verus main | cut -f1)" | |
| echo "sha=$SHA" >> "$GITHUB_OUTPUT" | |
| echo "Building Verus main@$SHA" | |
| - name: Cache toolchain + Verus build | |
| id: cache-toolchain | |
| uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ steps.verus-sha.outputs.sha }} | |
| - name: Install Rust + build Verus if cache is missing | |
| if: steps.cache-toolchain.outputs.cache-hit != 'true' | |
| run: | | |
| curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" \ | |
| | sh -s -- --default-toolchain none -y | |
| . "$HOME/.cargo/env" | |
| VERUS_DIR="$HOME/verus" ./tools/setup-verus.sh | |
| full-verification: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Verify all controllers | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| cargo verus verify --lib | |
| vreplicaset-admission-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy vreplicaset admission controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh vreplicaset-admission --build | |
| - name: Run vreplicaset e2e tests for admission | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- vreplicaset-admission | |
| vdeployment-admission-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy vdeployment admission controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh vdeployment-admission --build | |
| - name: Run vdeployment e2e tests for admission | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- vdeployment-admission | |
| vreplicaset-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy vreplicaset controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh vreplicaset --build | |
| - name: Run vreplicaset e2e tests | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- vreplicaset | |
| vdeployment-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy vdeployment controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh vdeployment --build | |
| - name: Run vdeployment e2e tests | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- vdeployment | |
| vstatefulset-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy vstatefulset controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh vstatefulset --build | |
| - name: Run vstatefulset e2e tests | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- vstatefulset | |
| rabbitmq-e2e-test: | |
| needs: setup-toolchain | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo | |
| ~/.rustup | |
| ~/verus | |
| rust-toolchain.toml | |
| target | |
| key: toolchain-${{ runner.os }}-${{ needs.setup-toolchain.outputs.verus-sha }} | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.go_version }} | |
| cache: false | |
| - name: Install kind | |
| run: go install sigs.k8s.io/kind@v$kind_version | |
| - name: Deploy rabbitmq controller | |
| run: | | |
| . "$HOME/.cargo/env" | |
| export PATH="$PATH:$HOME/verus/source/target-verus/release" | |
| ./tools/local-test.sh rabbitmq --build | |
| - name: Run rabbitmq e2e tests | |
| run: . "$HOME/.cargo/env" && cd e2e && cargo run -- rabbitmq |