test: add extreme case tests #445
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
# This workflow benchmark the gas usage of Universal Profile for common interactions | |
# It compare the gas cost of the changes made between: | |
# - a feature branch (where a PR is opened) | |
# - a target branch (where the PR will be merged) | |
name: 🆙 📊 Universal Profile Benchmark | |
on: | |
# enable to run workflow manually | |
workflow_dispatch: | |
pull_request: | |
types: [opened] | |
# compare gas diff only when editing Solidity smart contract code | |
paths: | |
- "packages/**/contracts/**/*.sol" | |
# do not run on releases (merging to main) | |
branches-ignore: | |
- "main" | |
jobs: | |
benchmark: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./packages/lsp-smart-contracts | |
steps: | |
- name: Checkout base branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.base.sha }} | |
fetch-depth: 0 | |
- name: Use Node.js v20 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "20.x" | |
cache: "npm" | |
- name: 📦 Install dependencies | |
run: npm ci | |
- name: 🏗️ Build contract artifacts | |
run: | | |
npm run build | |
npm run build:turbo | |
- 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 | |
# Do not run `git clean -ffdx && git reset --hard HEAD` to prevent removing `gas_benchmark_before.json` | |
with: | |
clean: false | |
- 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 | |
- name: 🧪 Run Benchmark tests | |
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: "./gas_benchmark.md" |