-
-
Notifications
You must be signed in to change notification settings - Fork 17
69 lines (64 loc) · 2 KB
/
rust.yml
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
name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download Git submodules
run: git submodule update --init --recursive
- uses: coq-community/docker-coq-action@v1
with:
custom_image: coqorg/coq:8.17-ocaml-4.14-flambda
custom_script: |
startGroup "Install dependencies"
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
cargo --version
sudo ln -s `which python3` /usr/bin/python
opam install -y coq-hammer
endGroup
startGroup "Build"
sudo chown -R $(whoami) .
cargo build --verbose
endGroup
startGroup "Install"
cargo install --path lib/
endGroup
startGroup "Format check"
cargo fmt --check
endGroup
startGroup "Lint"
cargo clippy --all-targets --all-features -- -D warnings
endGroup
startGroup "Translate Rust examples"
python run_tests.py
endGroup
startGroup "Pre-process the smart contracts"
cd contracts
python source_to_generated.py
cd generated
for dir in * ; do cd $dir ; cargo check ; cd .. ; done
cd ../..
endGroup
# We disable for now this translation as this makes a panic!
# startGroup "Translate Ink! library"
# cd CoqOfRust
# ./generate_ink_example.sh
# cd ..
# endGroup
startGroup "Check that the diff is empty"
git -c color.ui=always diff --exit-code
endGroup
startGroup "Compile Coq translations"
cd CoqOfRust
./configure.sh
python ./make_and_detect_warnings.py
cd ..
endGroup