Skip to content

chore: Decrement storage buffer, add EigenDA delay proof entrypoint, & refactor EigenDA tests #153

chore: Decrement storage buffer, add EigenDA delay proof entrypoint, & refactor EigenDA tests

chore: Decrement storage buffer, add EigenDA delay proof entrypoint, & refactor EigenDA tests #153

name: CI
on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches:
- eigenda
jobs:
test-unit:
name: Test unit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Check Contracts Format
run: forge fmt --check
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install packages
run: yarn
- name: Build
run: forge test
tests:
name: Contract tests
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup nodejs
uses: actions/setup-node@v2
with:
node-version: '18'
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Install dependencies
run: yarn install
- name: Lint Contracts
run: yarn solhint
- name: Lint Test Scripts
run: yarn lint:test
- name: Build
run: yarn build:all
- name: Run tests
run: yarn hardhat --network hardhat test test/contract/*.spec.ts
- name: Interface compatibility
run: yarn run test:compatibility
- name: Forge build
run: forge build
- name: Test size
run: yarn contract:size
- name: Test Storage Layouts
run: yarn run test:storage
- name: Test function signatures
run: yarn run test:signatures
- name: Run unused Solidity errors checker
uses: OffchainLabs/actions/check-unused-errors@main
with:
directory: './src'
exceptions_file: './test/unused-errors/exceptions.txt'
- name: Run coverage
run: yarn hardhat coverage --testfiles "test/contract/*.spec.ts"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
fail_ci_if_error: false
files: ./contracts/coverage.json
verbose: false
token: ${{ secrets.CODECOV_TOKEN }}
# TODO: This is test is failing due testnode referencing a latest target when running
# a prysm ETH validator. This causes config ingestion to fail and the resource to fail to spin up.
# This has already been patched upstream and will need to be incorporated within the next rebasing.
# test-4844:
# name: 4844 tests
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - name: Install Foundry
# uses: foundry-rs/foundry-toolchain@v1
# with:
# version: nightly
# - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main
# with:
# args: --pos
# no-token-bridge: true
# - name: Setup nodejs
# uses: actions/setup-node@v2
# with:
# node-version: 18
# cache: 'yarn'
# cache-dependency-path: '**/yarn.lock'
# - name: Install dependencies
# run: yarn install
# - name: Build
# run: yarn build:all
# - name: Test 4844
# run: yarn test:4844
# NOTE: OCL disables theses tests by default, not worth fixing until
# they are supported upstream
# SEE for ref: https://github.com/OffchainLabs/nitro-contracts/blob/94999b3e2d3b4b7f8e771cc458b9eb229620dd8f/.github/workflows/contract-tests.yml#L153-L247
# test-e2e:
# name: Test e2e
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main
# with:
# l3-node: true
# no-token-bridge: true
# no-l3-token-bridge: true
# nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'
# - name: Setup node/yarn
# uses: actions/setup-node@v3
# with:
# node-version: 18
# cache: 'yarn'
# cache-dependency-path: '**/yarn.lock'
# - name: Install packages
# run: yarn
# - name: Compile contracts
# run: yarn build
# - name: Run e2e tests
# run: yarn test:e2e
# test-e2e-custom-fee-token-eigenda:
# name: Test e2e custom fee token
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main
# with:
# l3-node: true
# args: --l3-fee-token
# no-token-bridge: true
# no-l3-token-bridge: true
# eigenda: true
# nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'
# - name: Setup node/yarn
# uses: actions/setup-node@v3
# with:
# node-version: 18
# cache: 'yarn'
# cache-dependency-path: '**/yarn.lock'
# - name: Install packages
# run: yarn
# - name: Compile contracts
# run: yarn build
# - name: Run e2e tests
# run: yarn test:e2e
# test-e2e-fee-token-6-decimals:
# name: Test e2e fee token with 6 decimals
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - uses: Layr-Labs/arbitrum-actions/run-nitro-test-node@main
# with:
# l3-node: true
# args: --l3-fee-token --l3-fee-token-decimals 6
# no-token-bridge: true
# no-l3-token-bridge: true
# nitro-contracts-branch: '${{ github.event.pull_request.head.sha || github.sha }}'
# - name: Setup node/yarn
# uses: actions/setup-node@v3
# with:
# node-version: 18
# cache: 'yarn'
# cache-dependency-path: '**/yarn.lock'
# - name: Install packages
# run: yarn
# - name: Compile contracts
# run: yarn build
# - name: Run e2e tests
# run: yarn test:e2e
bold-upgrade:
name: BOLD upgrade test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Install packages
run: yarn
- name: Compile contracts
run: yarn build:all
- name: Copy .env
run: |
cp ./.env-sample ./.env
- name: Test upgrade
run: L1_RPC=${{ secrets.L1_RPC || 'https://rpc.ankr.com/eth' }} yarn test:upgrade