-
Notifications
You must be signed in to change notification settings - Fork 369
92 lines (78 loc) · 3.17 KB
/
protocol_tests.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
name: Protocol Foundry tests
on: [push, pull_request]
env:
# Increment these to force cache rebuilding
FOUNDRY_CACHE_KEY: 1
jobs:
check:
defaults:
run:
working-directory: packages/protocol
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Fail if there are test with wrong extension
if: success() || failure()
run: |
if tree test-sol | grep -i ".sol" | grep -v ".sol"; then
echo "There are tests with wrong extensions"
tree test-sol | grep -i ".sol" | grep -v ".sol"
exit 1
fi
- name: Foundry cache
id: foundry-cache
uses: actions/cache@v3
with:
path: ./cache
key: ${{ runner.os }}-foundry-cache-${{ env.FOUNDRY_CACHE_KEY }}
- name: Foundry out
id: foundry-out
uses: actions/cache@v3
with:
path: ./out
key: ${{ runner.os }}-foundry-out-${{ env.FOUNDRY_CACHE_KEY }}
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: "nightly-f625d0fa7c51e65b4bf1e8f7931cd1c6e2e285e9"
- name: Install forge dependencies
run: forge install
# "Run tests" already tries to compile the contracts
# Making it explicit here to have easier to read errors
- name: Compile Contracts
run: forge --version && forge compile
- name: Run tests common
# can't use gas limit because some setUp function use more than the limit
run: forge test -vvv --match-path "test-sol/common/*" # --block-gas-limit 50000000
- name: Run tests governance/network
if: success() || failure()
run: forge test -vvv --block-gas-limit 50000000 --match-path "test-sol/governance/network/*"
- name: Run tests governance/validators
if: success() || failure()
run: forge test -vvv --block-gas-limit 50000000 --match-path "test-sol/governance/validators/*"
- name: Run tests governance/voting
# can't use gas limit because some setUp function use more than the limit
if: success() || failure()
run: forge test -vvv --match-path "test-sol/governance/voting/*" --block-gas-limit 50000000
- name: Run tests stability
if: success() || failure()
run: forge test -vvv --block-gas-limit 50000000 --match-path "test-sol/stability/*"
- name: Run tests identity
if: success() || failure()
run: forge test -vvv --block-gas-limit 50000000 --match-path "test-sol/identity/*"
- name: Fail if there are tests without folder
if: success() || failure()
run: |
if ls test-sol | grep -qi '\.t\.sol'; then
echo "All tests should be in a folder"
exit 1
fi
- name: Run Everything just in case something was missed
# can't use gas limit because some setUp function use more than the limit
run: forge test -vvv #TODO this should ignore integration tests
- name: Generate migrations
if: success() || failure()
run: ./migrations_sol/run_integration_tests_in_anvil.sh