-
Notifications
You must be signed in to change notification settings - Fork 15
142 lines (137 loc) · 4.41 KB
/
ci.yaml
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
138
139
140
141
142
name: AsteriscCI
on: [push]
jobs:
rvgo-tests:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Install Golang
uses: actions/setup-go@v4
with:
go-version: '1.21.x'
- name: Build rvsol
run: forge build
working-directory: rvsol
- name: Build rv64g test binaries
run: make bin bin/simple bin/minimal
working-directory: tests/go-tests
- name: Run tests
run: go test -v ./rvgo/... -coverprofile=coverage.out -coverpkg=./rvgo/...
- name: Fuzz
run: make fuzz
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
rvsol-tests:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Golang
uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- name: Build FFI
run: go build
working-directory: rvgo/scripts/go-ffi
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Run foundry tests
run: forge test -vvv --ffi
working-directory: rvsol
rvsol-lint:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Run lint
run: make lint-check
working-directory: rvsol
rvgo-lint:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.21.x'
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: latest
check-optimism-version-match:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Submodule update
run: git submodule update --init
- name: Install Golang
uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- name: Check if optimism submodule version matches go.mod version
run: ./.github/scripts/check_versions.sh
op-program-test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Submodule update
run: git submodule update --init
- uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- name: Build asterisc
run: make build-rvgo && cp rvgo/bin/asterisc tests/op-program-test/
- name: Build op-program
run: make -C rvsol/lib/optimism/op-program op-program-host && cp rvsol/lib/optimism/op-program/bin/op-program tests/op-program-test/
- name: Run op-program
run: tar -xzvf ./test-data.tar.gz && ./local_cmd.sh
working-directory: tests/op-program-test
rvgo-abigen:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install justfile
uses: extractions/setup-just@v2
with:
just-version: '1.28.0'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Cache geth alltools
id: cache-geth
uses: actions/cache@v4
with:
path: geth-alltools-linux-amd64-1.14.9-c350d3ac.tar.gz
key: ${{ runner.os }}-geth-alltools-linux-amd64-1.14.9-c350d3ac
- name: Download geth alltools if not cached
if: steps.cache-geth.outputs.cache-hit != 'true'
run: |
wget https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.14.9-c350d3ac.tar.gz
echo "834879bda2a2f10b6bfd60023872f8fe geth-alltools-linux-amd64-1.14.9-c350d3ac.tar.gz" | md5sum -c -
- name: Install abigen
run: |
tar -xvf geth-alltools-linux-amd64-1.14.9-c350d3ac.tar.gz
sudo mv geth-alltools-linux-amd64-1.14.9-c350d3ac/abigen /usr/local/bin/
- name: Build rvsol
run: forge build
working-directory: rvsol
- name: Check bindings
run: |
make gen-bindings
git diff --exit-code bindings
working-directory: rvgo