Skip to content

Continuous integration run by github-merge-queue #3658

Continuous integration run by github-merge-queue

Continuous integration run by github-merge-queue #3658

Workflow file for this run

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