Update remappings.txt for upgradeable contracts and set up submodule #4894
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
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: 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: 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 | |
- 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 |