1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
name: Verus Proofs
on:
push:
branches:
pull_request:
branches:
env:
VERUS_VERSION: "0.2026.07.05.49b8806"
jobs:
verify:
name: Verus verification
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- name: Cache Verus toolchain
id: cache-verus
uses: actions/cache@v4
with:
path: verus-toolchain
key: verus-${{ env.VERUS_VERSION }}-x86-linux
- name: Download Verus
if: steps.cache-verus.outputs.cache-hit != 'true'
run: |
set -euo pipefail
url="https://github.com/verus-lang/verus/releases/download/release/${VERUS_VERSION}/verus-${VERUS_VERSION}-x86-linux.zip"
echo "Downloading $url"
curl -fSL "$url" -o verus.zip
mkdir -p verus-toolchain
unzip -q verus.zip -d verus-toolchain
rm verus.zip
# A Verus release links one exact rustc;
# 0.2026.07.05 requires 1.96.0.
- name: Install the Verus-pinned Rust toolchain
run: rustup toolchain install 1.96.0 --profile minimal
- name: Locate verus binary
id: verus-bin
run: |
set -euo pipefail
bin="$(find "$PWD/verus-toolchain" -type f -name verus | head -n1)"
test -n "$bin" || { echo "verus binary not found under verus-toolchain/"; exit 1; }
chmod +x "$bin"
echo "bin=$bin" >> "$GITHUB_OUTPUT"
"$bin" --version
- name: Verify proofs
run: VERUS="${{ steps.verus-bin.outputs.bin }}" ./verus/verify.sh