-
Notifications
You must be signed in to change notification settings - Fork 9
124 lines (102 loc) · 3.55 KB
/
ci.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
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
name: Rust CI
on:
push:
branches:
- main
pull_request:
branches:
- "**"
jobs:
unit-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Run non-integration tests
run: cargo test --lib --release --features mock_prover -- --skip test_light_client_prover_talking
integration-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Expose github actions runtime
uses: crazy-max/ghaction-github-runtime@v1
- name: Build the docker-compose stack
run: |
cat > ci/cache.json <<EOF
{
"target": {
"validator": {
"cache-from": ["type=gha,scope=validator"],
"cache-to": ["type=gha,mode=max,scope=validator"],
"output": ["type=docker"]
},
"bridge-0": {
"cache-from": ["type=gha,scope=bridge-0"],
"cache-to": ["type=gha,mode=max,scope=bridge-0"],
"output": ["type=docker"]
},
"bridge-1": {
"cache-from": ["type=gha,scope=bridge-1"],
"cache-to": ["type=gha,mode=max,scope=bridge-1"],
"output": ["type=docker"]
},
"light-0": {
"cache-from": ["type=gha,scope=light-0"],
"cache-to": ["type=gha,mode=max,scope=light-0"],
"output": ["type=docker"]
}
}
}
EOF
cd ci && docker buildx bake --file docker-compose.yml --file cache.json --load
- name: Run the docker-compose stack
run: docker compose -f ci/docker-compose.yml up --no-build -d
- name: Wait for bridge node 0 to start
run: |
while ! docker compose -f ci/docker-compose.yml logs bridge-0 | grep -q 'Configuration finished. Running a bridge node'; do
sleep 1
done
- name: Wait for bridge node 1 to start
run: |
while ! docker compose -f ci/docker-compose.yml logs bridge-1 | grep -q 'Configuration finished. Running a bridge node'; do
sleep 1
done
- name: Wait for light node 0 to start
run: |
while ! docker compose -f ci/docker-compose.yml logs light-0 | grep -q 'Configuration finished. Running a light node'; do
sleep 1
done
- name: Run integration tests
run: cargo test -p prism-tests --lib --release --features mock_prover
unused-deps:
runs-on: ubuntu-latest
name: unused dependencies
steps:
- name: Checkout sources
uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Install cargo-udeps
uses: taiki-e/cache-cargo-install-action@v1
with:
tool: [email protected]
- name: Check for unused dependencies
run: cargo +nightly udeps --all-features --all-targets
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: clippy
- name: Run clippy
run: cargo clippy --locked --all --all-targets -- -D warnings