Update #26
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: CI | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
push: | |
branches: | |
- main | |
jobs: | |
foundry: | |
strategy: | |
fail-fast: true | |
name: Foundry | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: Setup LCOV | |
uses: hrishikesh-kadam/setup-lcov@v1 | |
- name: Contract sizes | |
run: | | |
forge --version | |
forge build --sizes | |
id: build | |
- name: Test | |
run: | | |
forge test -vvv | |
id: test | |
- name: Report coverage | |
if: github.ref == 'refs/heads/main' | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "Size" | |
./script/update_readme_coverage.sh | |
git add README.md | |
git commit -m "Update coverage [skip ci]" || true | |
git push https://${{ env.token }}@github.com/{{ github.event.repository.name }}.git | |
env: | |
token: ${{ secrets.SIZE_BOT_PAT }} | |
slither: | |
strategy: | |
fail-fast: true | |
name: Slither | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: Run Slither | |
uses: crytic/[email protected] | |
id: slither | |
with: | |
fail-on: low | |
typechain: | |
strategy: | |
fail-fast: true | |
name: Typechain | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: Build | |
run: forge build | |
- name: Install dependencies | |
run: npm install | |
- name: Generate types | |
run: npm run typechain | |
- name: Add typechain | |
if: github.ref == 'refs/heads/main' | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "Size" | |
git add types/ | |
git commit -m "Update types [skip ci]" || true | |
git push https://${{ env.token }}@github.com/{{ github.event.repository.name }}.git | |
env: | |
token: ${{ secrets.SIZE_BOT_PAT }} | |
solhint: | |
strategy: | |
fail-fast: true | |
name: Solhint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install dependencies | |
run: npm install | |
- name: Run solhint | |
run: npm run solhint |