Skip to content

feat(scripts): add witness caching for multi and cost_estimator (#776) #2986

feat(scripts): add witness caching for multi and cost_estimator (#776)

feat(scripts): add witness caching for multi and cost_estimator (#776) #2986

name: Integration Tests
on:
pull_request:
paths:
- '.github/workflows/integration-tests.yml'
- 'Cargo.toml'
- 'Cargo.lock'
- 'justfile'
- 'fault-proof/**'
- 'bindings/**'
- 'utils/**'
push:
tags:
- v[0-9]+.*
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ !startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/main' }}
jobs:
fp-integration-tests:
name: Fault Proof (${{ matrix.test }}${{ matrix.da != 'ethereum' && format(' - {0}', matrix.da) || '' }})
runs-on:
- runs-on
- runner=64cpu-linux-x64
- run-id=${{ github.run_id }}
- spot=false
- disk=large
- extras=s3-cache
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
# sync is DA-agnostic (runs once), integration is DA-specific
include:
- test: sync
da: ethereum
- test: integration
da: ethereum
- test: integration
da: eigenda
steps:
- name: Configure runs-on cache
uses: runs-on/action@v2
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
run: rustup toolchain install stable --profile minimal
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly-d592b3e0f142d694c3be539702704a4a73238773
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.
bindings
- name: Install just
uses: extractions/setup-just@v3
- name: Run tests
run: just fp-integration-tests ${{ matrix.test }} ${{ matrix.da }}
env:
L1_RPC: ${{ secrets.L1_RPC }}
L1_BEACON_RPC: ${{ secrets.L1_BEACON_RPC }}
L2_RPC: ${{ matrix.da == 'eigenda' && secrets.L2_EIGENDA_RPC || secrets.L2_RPC }}
L2_NODE_RPC: ${{ matrix.da == 'eigenda' && secrets.L2_EIGENDA_RPC || secrets.L2_NODE_RPC }}
EIGENDA_PROXY_ADDRESS: ${{ secrets.EIGENDA_PROXY_ADDRESS }}
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: fp-${{ matrix.test }}-${{ matrix.da }}-logs
path: |
**/*.log
target/debug/deps/*.log
retention-days: 7
da-integration-tests:
name: DA Host (${{ matrix.da }})
runs-on:
- runs-on
- runner=64cpu-linux-x64
- run-id=${{ github.run_id }}
- spot=false
- disk=large
- extras=s3-cache
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
da: [eigenda]
steps:
- name: Configure runs-on cache
uses: runs-on/action@v2
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Rust
run: |
rustup toolchain install stable --profile minimal
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.
bindings
- name: Install just
uses: extractions/setup-just@v3
- name: Run tests
run: just da-integration-tests ${{ matrix.da }}
env:
L1_RPC: ${{ secrets.L1_RPC }}
L1_BEACON_RPC: ${{ secrets.L1_BEACON_RPC }}
L2_RPC: ${{ matrix.da == 'eigenda' && secrets.L2_EIGENDA_RPC || secrets.L2_RPC }}
L2_NODE_RPC: ${{ matrix.da == 'eigenda' && secrets.L2_EIGENDA_RPC || secrets.L2_NODE_RPC }}
EIGENDA_PROXY_ADDRESS: ${{ secrets.EIGENDA_PROXY_ADDRESS }}
OP_SUCCINCT_MOCK: 'true'
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: da-host-${{ matrix.da }}-logs
path: |
**/*.log
target/debug/deps/*.log
retention-days: 7