CI #19
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: 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 | |
- uses: webfactory/[email protected] | |
with: | |
ssh-private-key: ${{ secrets.SIZE_BOT_SSH_KEY }} | |
- name: Report coverage | |
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 | |
- name: Push changes | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
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: npx typechain --target ethers-v5 out/Size.sol/Size.json out/PriceFeed.sol/PriceFeed.json | |
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: npx solhint src/**/*.sol --max-warnings 0 |