diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..b366b35 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,52 @@ +name: Coverage + +on: [push] + +concurrency: + group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true + +env: + FOUNDRY_PROFILE: ci + ARB_SEPOLIA_RPC: ${{ secrets.ARB_SEPOLIA_RPC }} + ARB_MAINNET_RPC: ${{ secrets.ARB_MAINNET_RPC }} + +jobs: + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: "yarn" + + - name: Install dependencies + run: yarn --frozen-lockfile --network-concurrency 1 + + - name: Install forge dependencies + run: forge install + + - name: Precompile using 0.8.19 and via-ir=false + run: yarn build + + - name: Install lcov (coverage dependency) + run: sudo apt-get update && sudo apt-get install lcov -y + + - name: Run Coverage + shell: bash + run: yarn test:coverage + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4.1.0 + with: + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true + slug: ${{ github.repository }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1ee41f2..5a37f58 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,10 @@ on: [push] concurrency: group: ${{ github.workflow}}-${{github.ref}} cancel-in-progress: true - +env: + FOUNDRY_PROFILE: ci + ARB_SEPOLIA_RPC: ${{ secrets.ARB_SEPOLIA_RPC }} + ARB_MAINNET_RPC: ${{ secrets.ARB_MAINNET_RPC }} jobs: lint: name: Run Linters diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..4d3a330 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,34 @@ +codecov: + require_ci_to_pass: yes + +coverage: + status: + project: + default: + target: auto + threshold: 95 + base: auto + precision: 2 + round: down + range: "95...100" + +parsers: + gcov: + branch_detection: + conditional: yes + loop: yes + method: no + macro: no + +comment: + layout: "reach, diff, flags, files" + behavior: default + require_changes: false + require_base: no + require_head: yes + +ignore: + - "test" + - "script" + - "src/libraries/" + - "src/contracts/for-test/"