Skip to content

Commit f94b777

Browse files
committed
add CI actions
1 parent 93c9e44 commit f94b777

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed

.github/actions/setup/action.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Setup
2+
3+
runs:
4+
using: composite
5+
steps:
6+
- uses: actions/setup-node@v4
7+
with:
8+
node-version: 20.x
9+
- uses: actions/cache@v4
10+
id: cache
11+
with:
12+
path: '**/node_modules'
13+
key: npm-v3-${{ hashFiles('**/package-lock.json') }}
14+
- name: Install dependencies
15+
run: npm ci
16+
shell: bash
17+
if: steps.cache.outputs.cache-hit != 'true'
18+
- name: Install Foundry
19+
uses: foundry-rs/foundry-toolchain@v1
20+
with:
21+
version: nightly

.github/workflows/checks.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: checks
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request: {}
8+
workflow_dispatch: {}
9+
10+
concurrency:
11+
group: checks-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
env:
15+
NODE_OPTIONS: --max_old_space_size=8192
16+
17+
jobs:
18+
lint:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
- name: Set up environment
23+
uses: ./.github/actions/setup
24+
- run: npm run lint
25+
26+
tests:
27+
runs-on: ubuntu-latest
28+
env:
29+
FORCE_COLOR: 1
30+
# Needed for "eth-gas-reporter" to produce a "gasReporterOutput.json" as documented in
31+
# https://github.com/cgewecke/eth-gas-reporter/blob/v0.2.27/docs/gasReporterOutput.md
32+
CI: true
33+
GAS: true
34+
steps:
35+
- uses: actions/checkout@v4
36+
- name: Set up environment
37+
uses: ./.github/actions/setup
38+
- name: Run tests and generate gas report
39+
run: npm run test
40+
41+
tests-foundry:
42+
runs-on: ubuntu-latest
43+
steps:
44+
- uses: actions/checkout@v4
45+
with:
46+
submodules: recursive
47+
- name: Set up environment
48+
uses: ./.github/actions/setup
49+
- name: Run tests
50+
run: forge test -vv
51+
52+
codespell:
53+
runs-on: ubuntu-latest
54+
steps:
55+
- uses: actions/checkout@v4
56+
- name: Run CodeSpell
57+
uses: codespell-project/[email protected]
58+
with:
59+
check_hidden: true
60+
check_filenames: true
61+
skip: package-lock.json,*.pdf

0 commit comments

Comments
 (0)