Migrate utils-structs tests to ethersjs (#4748) #229
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: checks | |
on: | |
push: | |
branches: | |
- master | |
- next-v* | |
- release-v* | |
pull_request: {} | |
workflow_dispatch: {} | |
concurrency: | |
group: checks-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
NODE_OPTIONS: --max_old_space_size=5120 | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- run: npm run lint | |
tests: | |
runs-on: ubuntu-latest | |
env: | |
FORCE_COLOR: 1 | |
GAS: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- name: Compile contracts # TODO: Remove after migrating tests to ethers | |
run: npm run compile | |
- name: Run tests and generate gas report | |
run: npm run test | |
- name: Check linearisation of the inheritance graph | |
run: npm run test:inheritance | |
- name: Check proceduraly generated contracts are up-to-date | |
run: npm run test:generation | |
- name: Compare gas costs | |
uses: ./.github/actions/gas-compare | |
if: github.base_ref == 'master' | |
with: | |
token: ${{ github.token }} | |
tests-upgradeable: | |
runs-on: ubuntu-latest | |
env: | |
FORCE_COLOR: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Include history so patch conflicts are resolved automatically | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- name: Copy non-upgradeable contracts as dependency | |
run: | | |
mkdir -p lib/openzeppelin-contracts | |
cp -rnT contracts lib/openzeppelin-contracts/contracts | |
- name: Transpile to upgradeable | |
run: bash scripts/upgradeable/transpile.sh | |
- name: Compile contracts # TODO: Remove after migrating tests to ethers | |
run: npm run compile | |
- name: Run tests | |
run: npm run test | |
- name: Check linearisation of the inheritance graph | |
run: npm run test:inheritance | |
- name: Check storage layout | |
uses: ./.github/actions/storage-layout | |
if: github.base_ref == 'master' | |
continue-on-error: ${{ contains(github.event.pull_request.labels.*.name, 'breaking change') }} | |
with: | |
token: ${{ github.token }} | |
tests-foundry: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- name: Run tests | |
run: forge test -vv | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- name: Compile contracts # TODO: Remove after migrating tests to ethers | |
run: npm run compile | |
- name: Run coverage | |
run: npm run coverage | |
- uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
slither: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up environment | |
uses: ./.github/actions/setup | |
- run: rm foundry.toml | |
- uses: crytic/[email protected] | |
with: | |
node-version: 18.15 | |
codespell: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run CodeSpell | |
uses: codespell-project/[email protected] | |
with: | |
check_hidden: true | |
check_filenames: true | |
skip: package-lock.json,*.pdf |