Skip to content

Commit abd282e

Browse files
committed
Unify CI workflows to share common steps
1 parent be35fde commit abd282e

File tree

5 files changed

+120
-84
lines changed

5 files changed

+120
-84
lines changed

.github/workflows/analyze.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

.github/workflows/build.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: CI
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
setup:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout code
10+
uses: actions/checkout@v4
11+
12+
- name: Install Foundry
13+
uses: foundry-rs/foundry-toolchain@v1
14+
15+
- name: Cache Foundry installation
16+
uses: actions/cache@v3
17+
with:
18+
path: ~/.foundry
19+
key: foundry-${{ runner.os }}-${{ hashFiles('~/.foundry/bin/forge') }}
20+
restore-keys: |
21+
foundry-${{ runner.os }}-
22+
23+
- name: Check Foundry version
24+
run: forge --version
25+
26+
- name: Install dependencies
27+
run: forge install
28+
29+
- name: Cache build artifacts
30+
uses: actions/cache@v3
31+
with:
32+
path: |
33+
cache
34+
out
35+
key: ${{ runner.os }}-build-${{ hashFiles('**/foundry.toml') }}-${{ hashFiles('**/remappings.txt') }}-${{ hashFiles('**/Cargo.lock') }}
36+
restore-keys: |
37+
${{ runner.os }}-build-
38+
39+
lint:
40+
needs: setup
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: Checkout code
44+
uses: actions/checkout@v4
45+
46+
- name: Restore Foundry cache
47+
uses: actions/cache@v3
48+
with:
49+
path: ~/.foundry
50+
key: foundry-${{ runner.os }}-${{ hashFiles('~/.foundry/bin/forge') }}
51+
restore-keys: |
52+
foundry-${{ runner.os }}-
53+
54+
- name: Add Foundry to PATH
55+
run: echo "$HOME/.foundry/bin" >> $GITHUB_PATH
56+
57+
- name: Check formatting
58+
run: forge fmt --check
59+
60+
slither:
61+
needs: setup
62+
runs-on: ubuntu-latest
63+
steps:
64+
- name: Checkout code
65+
uses: actions/checkout@v4
66+
67+
- name: Restore Foundry cache
68+
uses: actions/cache@v3
69+
with:
70+
path: ~/.foundry
71+
key: foundry-${{ runner.os }}-${{ hashFiles('~/.foundry/bin/forge') }}
72+
restore-keys: |
73+
foundry-${{ runner.os }}-
74+
75+
- name: Add Foundry to PATH
76+
run: echo "$HOME/.foundry/bin" >> $GITHUB_PATH
77+
78+
- name: Install dependencies
79+
run: forge install
80+
81+
- name: Install Slither
82+
run: pip install slither-analyzer==0.10.0
83+
84+
- name: Run Slither
85+
run: slither .
86+
87+
test:
88+
needs: setup
89+
runs-on: ubuntu-latest
90+
steps:
91+
- name: Checkout code
92+
uses: actions/checkout@v4
93+
94+
- name: Restore Foundry cache
95+
uses: actions/cache@v3
96+
with:
97+
path: ~/.foundry
98+
key: foundry-${{ runner.os }}-${{ hashFiles('~/.foundry/bin/forge') }}
99+
restore-keys: |
100+
foundry-${{ runner.os }}-
101+
102+
- name: Add Foundry to PATH
103+
run: echo "$HOME/.foundry/bin" >> $GITHUB_PATH
104+
105+
- name: Install dependencies
106+
run: forge install
107+
108+
- name: Restore build cache
109+
uses: actions/cache@v3
110+
with:
111+
path: |
112+
cache
113+
out
114+
key: ${{ runner.os }}-build-${{ hashFiles('**/foundry.toml') }}-${{ hashFiles('**/remappings.txt') }}-${{ hashFiles('**/Cargo.lock') }}
115+
116+
- name: Check contract sizes
117+
run: forge build --sizes
118+
119+
- name: Check gas snapshots
120+
run: forge snapshot --check

.github/workflows/lint.yml

Lines changed: 0 additions & 16 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)