From 42f9a1172ee4709f6865da19f298bb214ecf3842 Mon Sep 17 00:00:00 2001 From: aboudjem Date: Fri, 26 Apr 2024 14:25:58 +0400 Subject: [PATCH 1/5] =?UTF-8?q?=E2=9C=A8=20Add=20Foundry=20Gas=20Differenc?= =?UTF-8?q?es=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/foundry-gas-diff.yml | 44 ++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/foundry-gas-diff.yml diff --git a/.github/workflows/foundry-gas-diff.yml b/.github/workflows/foundry-gas-diff.yml new file mode 100644 index 00000000..0a69e251 --- /dev/null +++ b/.github/workflows/foundry-gas-diff.yml @@ -0,0 +1,44 @@ +name: Report Gas Differences + +on: + pull_request: + paths: + - 'contracts/**/*' + +jobs: + compare_gas_reports: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Foundry + uses: onbjerg/foundry-toolchain@v1 + with: + version: nightly + + - name: Run Tests and Generate Gas Report + run: forge test --gas-report > gasreport.ansi + env: + FOUNDRY_FUZZ_SEED: 0x${{ github.event.pull_request.base.sha || github.sha }} + + - name: Compare Gas Reports + uses: Rubilmax/foundry-gas-diff@v3.16 + with: + report: gasreport.ansi + base: ${{ github.base_ref || 'main' }} + head: ${{ github.head_ref }} + token: ${{ secrets.GITHUB_TOKEN }} + summaryQuantile: 0.9 + sortCriteria: 'avg,max' + sortOrders: 'desc,asc' + ignore: 'test-foundry/**/*' + id: gas_diff + + - name: Post Gas Diff as Sticky Comment + if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' + uses: marocchino/sticky-pull-request-comment@v2 + with: + delete: ${{ !steps.gas_diff.outputs.markdown }} + message: ${{ steps.gas_diff.outputs.markdown }} From 67fb5ad01e676de144e4cb013ba72a672878937b Mon Sep 17 00:00:00 2001 From: aboudjem Date: Fri, 26 Apr 2024 14:28:32 +0400 Subject: [PATCH 2/5] Update Foundry Gas Differences workflow --- .github/workflows/foundry-gas-diff.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/foundry-gas-diff.yml b/.github/workflows/foundry-gas-diff.yml index 0a69e251..160aa495 100644 --- a/.github/workflows/foundry-gas-diff.yml +++ b/.github/workflows/foundry-gas-diff.yml @@ -1,10 +1,8 @@ name: Report Gas Differences on: - pull_request: - paths: - - 'contracts/**/*' - + pull_request: + jobs: compare_gas_reports: runs-on: ubuntu-latest From 1dbae4d764cea344ebc2dc1796d1ae5c817dc550 Mon Sep 17 00:00:00 2001 From: aboudjem Date: Fri, 26 Apr 2024 14:36:44 +0400 Subject: [PATCH 3/5] Update Foundry Gas Differences workflow --- .github/workflows/foundry-gas-diff.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/foundry-gas-diff.yml b/.github/workflows/foundry-gas-diff.yml index 160aa495..a91c1a19 100644 --- a/.github/workflows/foundry-gas-diff.yml +++ b/.github/workflows/foundry-gas-diff.yml @@ -2,6 +2,9 @@ name: Report Gas Differences on: pull_request: + push: + branches: + - '**' # This line ensures that pushes to any branch are considered. jobs: compare_gas_reports: From a222c04b1ded81413401b60c47c545b45e453404 Mon Sep 17 00:00:00 2001 From: aboudjem Date: Fri, 26 Apr 2024 14:39:19 +0400 Subject: [PATCH 4/5] Update Foundry Gas Differences workflow --- .github/workflows/foundry-gas-diff.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/foundry-gas-diff.yml b/.github/workflows/foundry-gas-diff.yml index a91c1a19..00a6ed2c 100644 --- a/.github/workflows/foundry-gas-diff.yml +++ b/.github/workflows/foundry-gas-diff.yml @@ -15,7 +15,7 @@ jobs: submodules: recursive - name: Install Foundry - uses: onbjerg/foundry-toolchain@v1 + uses: foundry-rs/foundry-toolchain@v1 with: version: nightly From 7f146fe587fda042a5824bef06b91ea855d37b56 Mon Sep 17 00:00:00 2001 From: aboudjem Date: Fri, 26 Apr 2024 14:59:51 +0400 Subject: [PATCH 5/5] Update Foundry Gas Differences workflow and install dependencies --- .github/workflows/foundry-gas-diff.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/foundry-gas-diff.yml b/.github/workflows/foundry-gas-diff.yml index 00a6ed2c..93f5a3d7 100644 --- a/.github/workflows/foundry-gas-diff.yml +++ b/.github/workflows/foundry-gas-diff.yml @@ -19,6 +19,9 @@ jobs: with: version: nightly + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Run Tests and Generate Gas Report run: forge test --gas-report > gasreport.ansi env: