From 9a73464d04b3bf9ff28039079c5478bf408a52ef Mon Sep 17 00:00:00 2001 From: CJ42 Date: Tue, 26 Sep 2023 16:37:57 +0100 Subject: [PATCH] ci: update gas benchmark CI with new diff flow --- .github/workflows/benchmark.yml | 41 +++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 0fb243e1f..8db229c1d 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -22,7 +22,32 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout base branch + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.base.sha }} + fetch-depth: 0 + + - name: Use Node.js '16.15.0' + uses: actions/setup-node@v2 + with: + node-version: "16.15.0" + cache: "npm" + + - name: ๐Ÿ“ฆ Install dependencies + run: npm ci + + - name: ๐Ÿ—๏ธ Build contract artifacts + run: npx hardhat compile --force + + - name: ๐Ÿงช Run Benchmark tests + # Rename the file to be able to generate benchmark JSON report + run: | + npm run test:benchmark + mv ./gas_benchmark_result.json ./gas_benchmark_before.json + + - name: Checkout current branch + uses: actions/checkout@v3 - name: Use Node.js '16.15.0' uses: actions/setup-node@v2 @@ -34,14 +59,22 @@ jobs: run: npm ci - name: ๐Ÿ—๏ธ Build contract artifacts - run: npx hardhat compile + # Clean artifacts to ensure we generate a clean build + run: | + npm run clean + npx hardhat compile --force - name: ๐Ÿงช Run Benchmark tests - run: npm run test:benchmark + run: | + npm run test:benchmark + mv ./gas_benchmark_result.json ./gas_benchmark_after.json - name: ๐Ÿ“Š Generate Benchmark Report + run: npx hardhat gas-benchmark --compare ./gas_benchmark_after.json --against ./gas_benchmark_before.json + + - name: ๐Ÿ’ฌ Add Gas Report as comment in PR uses: peter-evans/create-or-update-comment@v2 with: token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.pull_request.number }} - body-file: "./benchmark.md" + body-file: "./gas_benchmark.md"