-
Notifications
You must be signed in to change notification settings - Fork 32
159 lines (127 loc) · 3.81 KB
/
ci.yml
File metadata and controls
159 lines (127 loc) · 3.81 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
name: ci
on:
workflow_dispatch:
push:
branches: [main]
pull_request:
branches: [main]
types: [opened, synchronize, reopened, ready_for_review]
jobs:
tests:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install fixpoint
uses: ./.github/actions/install-fixpoint
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Z3
uses: cda-tum/setup-z3@v1.6.6
with:
version: 4.12.1
- name: Rust Cache
uses: Swatinem/rust-cache@v2.8.0
- name: Run tests
run: |
cargo xtask test
vtock:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install fixpoint
uses: ./.github/actions/install-fixpoint
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Older versions hang
- name: Install Z3
uses: cda-tum/setup-z3@v1.6.6
with:
version: 4.15.3
- name: Rust Cache
uses: Swatinem/rust-cache@v2.8.0
- name: Install Flux
run: |
cargo x install
echo ~/.cargo/bin >> $GITHUB_PATH
- name: Clone vtock
run: |
git clone https://github.com/PLSysSec/tock
cp rust-toolchain.toml tock/rust-toolchain.toml
- name: Patch flux-rs dependency if in pull request
if: github.event_name == 'pull_request'
run: |
echo '[patch."https://github.com/flux-rs/flux.git"]' >> tock/Cargo.toml
echo 'flux-rs = { path = "../lib/flux-rs" }' >> tock/Cargo.toml
echo 'flux-core = { path = "../lib/flux-core" }' >> tock/Cargo.toml
echo 'flux-alloc = { path = "../lib/flux-alloc" }' >> tock/Cargo.toml
- name: Check tock/kernel
run: |
cd tock
cargo flux -p cortexm -p rv32i
lean-demo:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install Lean via elan
run: |
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- -y
echo "$HOME/.elan/bin" >> $GITHUB_PATH
- name: Install fixpoint
uses: ./.github/actions/install-fixpoint
env:
GITHUB_TOKEN:
${{ secrets.GITHUB_TOKEN }}
# Older versions hang
- name: Install Z3
uses: cda-tum/setup-z3@v1.6.6
with:
version: 4.15.3
- name: Rust Cache
uses: Swatinem/rust-cache@v2.8.0
- name: Install Flux
run: |
cargo x install
echo ~/.cargo/bin >> $GITHUB_PATH
- name: Clone flux-to-lean-demo
run: |
git clone https://github.com/flux-rs/flux-to-lean-demo
- name: Generate Lean Project
continue-on-error: true
working-directory: flux-to-lean-demo
run: |
cargo flux
- name: Copy proofs
working-directory: flux-to-lean-demo
run: |
cp -r LeanUserProofs/* lean_proofs/LeanProofs/User/
- name: Run lean
working-directory: flux-to-lean-demo
run: |
cd lean_proofs && lake build
- name: Check proofs in flux
run: |
cargo flux
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Rust Cache
uses: Swatinem/rust-cache@v2.8.0
- name: Rust rustfmt
run: cargo fmt --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Rust cache
uses: Swatinem/rust-cache@v2.8.0
- name: Run cargo check
run: RUSTFLAGS="-Dwarnings" cargo check
- name: Run clippy
run: cargo clippy