feat: foundry and devcontainer #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Foundry CI | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- main | |
paths: | |
- '**.sol' | |
- '**.yml' | |
push: | |
branches: | |
- main | |
paths: | |
- '**.sol' | |
- '**.yml' | |
env: | |
FOUNDRY_PROFILE: ci | |
jobs: | |
setup: | |
name: Setup Environment | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-node@v4 | |
- id: yarn-cache | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ steps.yarn-cache.outputs.dir }} | |
key: yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
yarn- | |
- run: yarn --frozen-lockfile | |
- name: Install Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
test: | |
needs: setup | |
name: Run Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Run Forge build | |
run: | | |
forge --version | |
forge build --sizes | |
id: build | |
- name: Run Forge tests | |
run: | | |
forge test -vvv | |
id: test | |
# TODO: Remove the following line after adding the first foundry test | |
continue-on-error: true | |
lint: | |
needs: setup | |
name: Lint Code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check formatting | |
run: forge fmt --check | |
# TODO: Remove the following line to allow the workflow to fail if the formatting is incorrect | |
continue-on-error: true | |
gas: | |
needs: setup | |
name: Check Gas Usage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check gas snapshots | |
run: forge snapshot --check | |
# TODO: Remove the following line to allow the workflow to fail if the formatting is incorrect | |
continue-on-error: true |