Skip to content

ci: migrate Catalyst workflows to Taiko - #1

Draft
davidtaikocha wants to merge 2 commits into
masterfrom
codex/taiko-ci-migration
Draft

ci: migrate Catalyst workflows to Taiko#1
davidtaikocha wants to merge 2 commits into
masterfrom
codex/taiko-ci-migration

Conversation

@davidtaikocha

Copy link
Copy Markdown
Collaborator

Summary

  • Consolidate Rust formatting, Clippy, spelling, tests, and dependency policy checks into one Taiko-owned CI workflow on GitHub-hosted runners.
  • Replace the Nethermind-gated image workflows with a main-node-only Docker workflow for us-docker.pkg.dev/evmchain/images/catalyst-node.
  • Validate Docker builds without credentials on pull requests; publish native linux/amd64 and linux/arm64 images by digest and merge them into one manifest on master and v* tags.
  • Authenticate GAR publishing with Taiko's existing GitHub OIDC / Workload Identity Federation setup.
  • Retire legacy node, P2P, spammer, pytest-old, and split Rust workflows while leaving the existing E2E and Claude workflows unchanged.
  • Make BLST_PORTABLE an effective Docker build argument and update Cargo.lock to patched anyhow, crossbeam-epoch, and ruint releases required by the dependency audit.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-features --exclude p2p-boot-node --locked -- -D warnings
  • cargo test --workspace --locked --verbose (129 unit tests plus doc tests)
  • typos .
  • cargo deny check (passes; retains one existing transitive yanked spin 0.9.8 warning)
  • actionlint .github/workflows/*.yml
  • docker buildx build --call=check --file Dockerfile .
  • Local CI migration contract and staged diff checks

Before merge

  • Confirm the pull-request Docker validation job completes. Two local full-build attempts reached the container's Optimism git dependency fetch and made no further progress; they were cancelled without a compile failure.
  • Confirm the WIF provider permits taikoxyz/Catalyst and gar-github-action@evmchain.iam.gserviceaccount.com can write us-docker.pkg.dev/evmchain/images/catalyst-node.

David and others added 2 commits August 13, 2026 09:56
Two review findings from #1.

1. `BLST_PORTABLE` was inert. `blst` selects portable mode from the Cargo
   feature `portable` (build.rs:160); the only environment variable its build
   script reads is `BLST_TEST_NO_STD`. The `ARG`/`--build-arg` pair therefore
   did nothing except suppress BuildKit's "build args were not consumed"
   warning, which made a no-op look plumbed through. Builds kept falling
   through to host CPU detection and baked ADX/BMI2-only assembly into the
   published amd64 image, which SIGILLs on pre-Broadwell/pre-Zen hosts.

   `blst` reaches this workspace through `c-kzg`, whose `portable` feature
   forwards to `blst/portable`. Every existing dependent (alloy-eips,
   alloy-consensus, revm-precompile) takes c-kzg with default-features = false,
   so the feature was off. Declare c-kzg directly from `common` with that one
   feature and let feature unification carry it to the single `blst` node.
   Verified with `cargo tree -p node -e features -i blst`:
   common -> c-kzg feature "portable" -> blst feature "portable".

   Lockfile impact is one line; c-kzg stays at 2.1.7 and blst at 0.3.16.

   The Dockerfile ARG and both build-args blocks are removed, since the
   control surface is now the Cargo feature.

2. The retired p2p_node_docker_build.yml left tools/p2p_boot_node/ with no
   image pipeline, while simple-taiko-node-nethermind's docker-compose.yml
   pulls nethermind/catalyst-p2p-bootnode:latest and four services depend on
   it. Nothing goes red -- E2E would silently keep testing a frozen Nethermind
   build. Matrix the validate/publish/merge jobs over image so the bootnode is
   built and published alongside the node. Repointing the compose file to GAR
   is a follow-up in that repo.

Also adds tools/p2p_boot_node/Dockerfile to the path filters (the bare
"Dockerfile" entry only matches the repo root) and records why `paths` is safe
to combine with tag pushes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant