Skip to content

feat(taiko-client): clear zk proof backlog before fallback #6496

feat(taiko-client): clear zk proof backlog before fallback

feat(taiko-client): clear zk proof backlog before fallback #6496

name: "CI"
on:
push:
branches: [main]
paths:
- "packages/taiko-client/**"
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "packages/taiko-client/**"
- "go.mod"
- "go.sum"
- "!**/*.md"
branches-ignore:
- release-please--branches--**
concurrency:
group: taiko-client-test-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
if: ${{ github.event.pull_request.draft == false && !startsWith(github.head_ref, 'release-please') && !startsWith(github.head_ref, 'dependabot') }}
name: Lint
runs-on: [arc-runner-set]
timeout-minutes: 10
env:
CGO_ENABLED: 1
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true
- name: Go mod download
run: go mod download
- name: Ensure build-essential is installed
run: |
set -euo pipefail
if [ "${RUNNER_DEBUG:-}" = "1" ]; then set -x; fi
if command -v gcc >/dev/null 2>&1 && \
command -v g++ >/dev/null 2>&1 && \
command -v make >/dev/null 2>&1; then
echo "Required build tools are already available."
exit 0
fi
if ! command -v apt-get >/dev/null 2>&1; then
echo "::error::gcc/g++/make are missing and apt-get is unavailable, cannot install automatically."
exit 1
fi
export DEBIAN_FRONTEND=noninteractive
retry=0
until sudo apt-get update; do
retry=$((retry + 1))
if [ "${retry}" -ge 4 ]; then
echo "::error::apt-get update failed after ${retry} attempts."
exit 1
fi
echo "::warning::apt-get update failed, retrying (${retry}/3)"
sleep 5
done
sudo apt-get install -y --no-install-recommends build-essential
- name: Lint
uses: golangci/golangci-lint-action@v9
with:
version: latest
working-directory: ./packages/taiko-client
args: --timeout=10m --config=.golangci.yml ./...
integration_tests:
if: ${{ github.event.pull_request.draft == false && !startsWith(github.head_ref, 'release-please') }}
name: Integration tests
runs-on: [arc-runner-set]
timeout-minutes: 30
env:
CGO_ENABLED: 1
strategy:
fail-fast: false
matrix:
execution_node: [l2_geth, l2_reth, l2_nmc]
# Allow l2_nmc tests to fail without blocking PR merges
continue-on-error: ${{ matrix.execution_node == 'l2_nmc' }}
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.13.1
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v6
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Set up Docker Compose
uses: docker/setup-compose-action@v2
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod
cache: true
- name: Ensure make is available
uses: ./.github/actions/ensure-make
- name: Ensure build-essential is installed
run: |
set -euo pipefail
if [ "${RUNNER_DEBUG:-}" = "1" ]; then set -x; fi
if command -v gcc >/dev/null 2>&1 && \
command -v g++ >/dev/null 2>&1 && \
command -v make >/dev/null 2>&1; then
echo "Required build tools are already available."
exit 0
fi
if ! command -v apt-get >/dev/null 2>&1; then
echo "::error::gcc/g++/make are missing and apt-get is unavailable, cannot install automatically."
exit 1
fi
export DEBIAN_FRONTEND=noninteractive
retry=0
until sudo apt-get update; do
retry=$((retry + 1))
if [ "${retry}" -ge 4 ]; then
echo "::error::apt-get update failed after ${retry} attempts."
exit 1
fi
echo "::warning::apt-get update failed, retrying (${retry}/3)"
sleep 5
done
sudo apt-get install -y --no-install-recommends build-essential
- name: Install pnpm dependencies
uses: ./.github/actions/install-pnpm-dependencies
with:
cache-dependency-path: pnpm-lock.yaml
- name: Install pnpm dependencies for protocol
run: cd ./packages/protocol && pnpm install
- name: Run Tests on ${{ matrix.execution_node }} execution engine
working-directory: packages/taiko-client
env:
L2_NODE: ${{ matrix.execution_node }}
run: make test
- name: Codecov.io
uses: codecov/codecov-action@v6
with:
files: packages/taiko-client/coverage.out
flags: taiko-client
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}