Co-authored-by: Bilog WEB3 <155262265+Bilogweb3@users.noreply.github.com> Co-authored-by: Fallengirl <155266340+Fallengirl@users.noreply.github.com> Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com> Co-authored-by: XxAlex74xX <30472093+XxAlex74xX@users.noreply.github.com> Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com> Co-authored-by: PixelPilot <161360836+PixelPil0t1@users.noreply.github.com> Co-authored-by: kilavvy <140459108+kilavvy@users.noreply.github.com> Co-authored-by: Devkuni <155117116+detrina@users.noreply.github.com> Co-authored-by: Danbo <140512416+dannbbb1@users.noreply.github.com> Co-authored-by: Ann Wagner <chant_77_swirly@icloud.com> Co-authored-by: comfsrt <155266597+comfsrt@users.noreply.github.com> Co-authored-by: Bob <158583129+bouchmann@users.noreply.github.com> Co-authored-by: JohnBonny <158583902+JohnBonny@users.noreply.github.com> Co-authored-by: moonman <155266991+moooonman@users.noreply.github.com> Co-authored-by: kazak <alright-epsilon8h@icloud.com> Co-authored-by: Wei <ybxerlvqtx@rambler.ru> Co-authored-by: Maxim Evtush <154841002+maximevtush@users.noreply.github.com> Co-authored-by: Vitalyr <158586577+Vitaliyr888@users.noreply.github.com> Co-authored-by: pendrue <158588659+pendrue@users.noreply.github.com> Co-authored-by: Tronica <wudmytrotest404@gmail.com> Co-authored-by: emmmm <155267286+eeemmmmmm@users.noreply.github.com> Co-authored-by: bigbear <155267841+aso20455@users.noreply.github.com> Co-authored-by: Tomás Andróil <tomasandroil@gmail.com> Co-authored-by: GooseMatrix <155266802+GooseMatrix@users.noreply.github.com> Co-authored-by: jasmy <3776356370@qq.com> Co-authored-by: SITADRITA1 <mrlime2018@gmail.com> Co-authored-by: Ocenka <testoviydiman1@gmail.com> Signed-off-by: Hadrien Croubois <hadrien.croubois@gmail.com>
133 lines
3.6 KiB
YAML
133 lines
3.6 KiB
YAML
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=8192
|
|
|
|
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
|
|
# Needed for "eth-gas-reporter" to produce a "gasReporterOutput.json" as documented in
|
|
# https://github.com/cgewecke/eth-gas-reporter/blob/v0.2.27/docs/gasReporterOutput.md
|
|
CI: true
|
|
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 pragma consistency between files
|
|
run: npm run test:pragma
|
|
- name: Check procedurally generated contracts are up-to-date
|
|
run: npm run test:generation
|
|
- name: Compare gas costs
|
|
uses: ./.github/actions/gas-compare
|
|
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 pragma consistency between files
|
|
run: npm run test:pragma
|
|
- name: Check storage layout
|
|
uses: ./.github/actions/storage-layout
|
|
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: Run coverage
|
|
run: npm run coverage
|
|
- uses: codecov/codecov-action@v5
|
|
env:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
harnesses:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up environment
|
|
uses: ./.github/actions/setup
|
|
- name: Compile harnesses
|
|
run: |
|
|
make -C certora apply
|
|
npm run compile:harnesses
|
|
|
|
slither:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up environment
|
|
uses: ./.github/actions/setup
|
|
- uses: crytic/slither-action@v0.4.0
|
|
|
|
codespell:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run CodeSpell
|
|
uses: codespell-project/actions-codespell@v2.1
|
|
with:
|
|
check_hidden: true
|
|
check_filenames: true
|
|
skip: package-lock.json,*.pdf,vendor
|