fix: abigen ci workflow (#118) #292
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 | |
env: | |
API_KEY_ALCHEMY: ${{ secrets.API_KEY_ALCHEMY }} | |
FOUNDRY_PROFILE: "ci" | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- "main" | |
jobs: | |
lint: | |
name: "lint" | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up environment" | |
uses: ./.github/setup | |
- name: "Lint the code" | |
run: "bun run lint:sol" | |
- name: "Add lint summary" | |
run: | | |
echo "## Lint result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
build: | |
name: "build" | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up environment" | |
uses: ./.github/setup | |
- name: "Build the contracts and print their size" | |
run: "forge build --sizes" | |
- name: "Add build summary" | |
run: | | |
echo "## Build result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
test: | |
name: "test" | |
needs: ["lint", "build"] | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up environment" | |
uses: ./.github/setup | |
- name: "Show the Foundry config" | |
run: "forge config" | |
- name: "Generate a fuzz seed that changes weekly to avoid burning through RPC allowance" | |
run: > | |
echo "FOUNDRY_FUZZ_SEED=$( | |
echo $(($EPOCHSECONDS - $EPOCHSECONDS % 604800)) | |
)" >> $GITHUB_ENV | |
- name: "Run the tests" | |
run: "forge test" | |
- name: "Add test summary" | |
run: | | |
echo "## Tests result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
coverage: | |
name: "coverage" | |
needs: ["test"] | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up environment" | |
uses: ./.github/setup | |
- name: Install lcov | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y lcov | |
- name: "Run coverage" | |
run: forge coverage --report lcov | |
- name: "Remove the test directory from the coverage report" | |
run: lcov --remove lcov.info 'test/**' -o lcov.info | |
- uses: codecov/codecov-action@v4 | |
with: | |
exclude: test | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |