-
Notifications
You must be signed in to change notification settings - Fork 4
137 lines (111 loc) · 2.98 KB
/
contract-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
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
name: CI
on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches:
- master
- develop
jobs:
test-unit:
name: Test unit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install packages
run: yarn
- name: Build
run: forge test
tests:
name: Contract tests
runs-on: ubuntu-8
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Install dependencies
run: yarn install
- name: Lint Contracts
run: yarn solhint
- name: Lint Test Scripts
run: yarn lint:test
- name: Build
run: yarn build:all
- name: Run tests
run: yarn hardhat --network hardhat test test/contract/*.spec.ts
- name: Interface compatibility
run: yarn run test:compatibility
- name: Forge build
run: forge build
- name: Test Storage Layouts
run: yarn run test:storage
- name: Test function signatures
run: yarn run test:signatures
- name: Run coverage
run: yarn hardhat coverage --testfiles "test/contract/*.spec.ts"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
fail_ci_if_error: false
files: ./contracts/coverage.json
verbose: false
token: ${{ secrets.CODECOV_TOKEN }}
test-4844:
name: 4844 tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- uses: OffchainLabs/actions/run-nitro-test-node@test-node-args
with:
nitro-testnode-ref: deneb-integration
args: --pos
no-token-bridge: true
- name: Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install dependencies
run: yarn install
- name: Build
run: yarn build:all
- name: Test 4844
run: yarn test:4844