Skip to content

Commit 7e3a627

Browse files
committed
ci: add Coq tests
1 parent 67a2c13 commit 7e3a627

File tree

4 files changed

+85
-766
lines changed

4 files changed

+85
-766
lines changed

.github/workflows/coq.yml

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Coq
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
target: [x86_64-unknown-linux-gnu]
15+
16+
steps:
17+
- name: Checkout Noir repo
18+
uses: actions/checkout@v4
19+
20+
- name: Download Git submodules
21+
run: git submodule update --init --recursive
22+
23+
- name: Run the Coq tests
24+
uses: coq-community/docker-coq-action@v1
25+
with:
26+
custom_image: coqorg/coq:8.17-ocaml-4.14-flambda
27+
custom_script: |
28+
startGroup "Install dependencies"
29+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
30+
source "$HOME/.cargo/env"
31+
cargo --version
32+
sudo ln -s `which python3` /usr/bin/python
33+
opam install -y --deps-only CoqOfNoir/coq-of-noir.opam
34+
endGroup
35+
startGroup "Install"
36+
sudo chown -R $(whoami) .
37+
cargo install --path tooling/nargo_cli
38+
endGroup
39+
startGroup "Checkout noir_base64 example"
40+
git clone https://github.com/noir-lang/noir_base64.git
41+
cd noir_base64/
42+
git checkout eb933f20b8175132f8e965e519b98c41ad805af1
43+
cd ..
44+
endGroup
45+
startGroup "Convert to Coq"
46+
cd noir_base64/
47+
nargo test --show-monomorphized
48+
cd ..
49+
python scripts/coq_of_noir.py noir_base64/monomorphized_program.json >CoqOfNoir/base64/translation.v
50+
endGroup
51+
startGroup "Check that the diff is empty (excluding submodules)"
52+
git -c color.ui=always diff --exit-code --ignore-submodules=dirty
53+
endGroup
54+
startGroup "Compile Coq translations"
55+
cd CoqOfNoir
56+
make
57+
cd ..
58+
endGroup

CoqOfNoir/.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ CoqMakefile.conf
77
*.vo
88
*.vok
99
*.vos
10+
# We put this file in the .gitignore because it is generated and the translation is not yet
11+
# stable: there might be re-oderings in the file depending on the build.
12+
base64/translation.v

0 commit comments

Comments
 (0)