Skip to content

ci: update CircleCI config to use just instead of make#19482

Merged
ajsutton merged 11 commits intodevelopfrom
aj/ci-make-to-just
Mar 13, 2026
Merged

ci: update CircleCI config to use just instead of make#19482
ajsutton merged 11 commits intodevelopfrom
aj/ci-make-to-just

Conversation

@ajsutton
Copy link
Contributor

@ajsutton ajsutton commented Mar 11, 2026

Summary

  • Migrates all CircleCI make invocations to just for targets that have been migrated to justfiles in the stack below
  • Converts make -C <dir> <target> patterns to working_directory + just <target>
  • Converts make <target> VAR=val patterns to VAR=val just <target>

Remaining make calls (intentionally unchanged)

  • make fuzz in parameterized fuzz job — runs for op-challenger, op-node, op-service, op-chain-ops which are not yet migrated

Stack

  1. optimism#19473 — linter migration + shared infrastructure
  2. optimism#19474 — cannon migration
  3. optimism#19475 — op-e2e migration
  4. optimism#19476 — op-program migration
  5. optimism#19477 — root Makefile migration
  6. This PR — CI config update
  7. optimism#19483 — cannon testdata migration

Test plan

  • CI passes with all migrated targets using just directly

🤖 Generated with Claude Code

@ajsutton ajsutton requested a review from a team as a code owner March 11, 2026 03:51
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from a963f4d to 5c7a2c5 Compare March 11, 2026 03:58
@wiz-inc-a178a98b5d
Copy link

wiz-inc-a178a98b5d bot commented Mar 11, 2026

Wiz Scan Summary

Scanner Findings
Vulnerability Finding Vulnerabilities -
Data Finding Sensitive Data -
Secret Finding Secrets -
IaC Misconfiguration IaC Misconfigurations -
SAST Finding SAST Findings -
Software Management Finding Software Management Findings -
Total -

View scan details in Wiz

To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension.

@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 5e8004e to 7d3bec3 Compare March 11, 2026 04:01
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from 5c7a2c5 to e0ed02c Compare March 11, 2026 04:11
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 7d3bec3 to 5f77f8f Compare March 11, 2026 04:11
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch 2 times, most recently from 1261c27 to c3b9c61 Compare March 11, 2026 04:21
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 0f7fa35 to 1739da5 Compare March 11, 2026 04:21
@codecov
Copy link

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.7%. Comparing base (9a50c60) to head (dc80630).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #19482      +/-   ##
===========================================
+ Coverage     75.3%    75.7%    +0.4%     
===========================================
  Files          194      671     +477     
  Lines        11285    71270   +59985     
===========================================
+ Hits          8502    54012   +45510     
- Misses        2639    17114   +14475     
  Partials       144      144              
Flag Coverage Δ
cannon-go-tests-64 66.4% <ø> (ø)
contracts-bedrock-tests 80.2% <ø> (ø)
unit 75.8% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 477 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from c3b9c61 to e4c158a Compare March 11, 2026 15:37
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 12e44a5 to 7fa2ea1 Compare March 11, 2026 16:20
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from e4c158a to a5226fc Compare March 11, 2026 16:20
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 7fa2ea1 to ecf46fb Compare March 12, 2026 16:11
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from a5226fc to 7edf4ca Compare March 12, 2026 16:12
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from ecf46fb to f42c9d3 Compare March 12, 2026 18:25
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from 7edf4ca to 84a660a Compare March 12, 2026 18:25
Copy link
Member

@sebastianst sebastianst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: CircleCI config make → just migration

Clean, mechanical migration. Each change is a straightforward makejust substitution. A few notes:

1. make -j reproducible-prestatejust reproducible-prestate — lost parallelism

The original make -j reproducible-prestate would run reproducible-prestate-op-program and reproducible-prestate-kona in parallel (Make's -j flag). Just runs dependencies sequentially, so these two Docker-based prestate builds now run one after the other. This could noticeably increase CI wall time for the cannon-prestate job since each involves Docker builds.

2. make sanitize-program GUEST_PROGRAM=...GUEST_PROGRAM=... just sanitize-program

Verified this works — the cannon justfile's sanitize-program uses $GUEST_PROGRAM as a shell env var in a shebang script (not a just parameter), so the env var prefix correctly passes it through.

3. cd cannon && makecd cannon && just cannon

The original ran Make's default target (implicitly cannon). The new version explicitly names the target. Correct.

Everything else looks good

  • make -C <dir> <target> correctly converted to either just <target> with working_directory: <dir>, or just <target> at root (for targets that delegate internally)
  • make <<parameters.rule>>just <<parameters.rule>> for the parameterized go-tests job
  • make fuzz intentionally left as-is (per PR description, those packages aren't migrated yet)
  • Job name "Run Go tests via Makefile" → "Run Go tests" — nice cleanup

Review generated by Claude Code

@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from f42c9d3 to 79184e5 Compare March 12, 2026 22:15
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from 84a660a to c0b0e5e Compare March 12, 2026 22:16
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 79184e5 to 43e1e93 Compare March 12, 2026 22:29
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch 2 times, most recently from 8f998b1 to f2f76e2 Compare March 12, 2026 22:50
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from 996889c to a74e5f5 Compare March 12, 2026 22:54
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch 2 times, most recently from 46b6245 to 3f01ec5 Compare March 12, 2026 23:27
ajsutton and others added 3 commits March 13, 2026 00:08
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d shim

The deprecated.mk shim was changed to pass JUSTFLAGS as just CLI
variable overrides (`just VAR=val target`), but just rejects overrides
for variables not declared in the justfile. This broke CI jobs where
Make variable assignments propagate through sub-makes (e.g.
GO_TEST_FLAGS, GUEST_PROGRAM).

Revert to passing them as environment variables via `env`, which is
how the shim originally worked in the cannon migration PR.

Fixes: go-tests-short, sanitize-op-program CI failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ajsutton and others added 6 commits March 13, 2026 00:09
Migrate root build targets from Make to Just. The Makefile now
delegates to just with a deprecation warning, preserving backwards
compatibility for existing make invocations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All subdirectories now have justfiles with deprecated Make shims,
so convert remaining make -C calls to cd && just. Also restores
the explanatory comment on mod-tidy's GOPRIVATE usage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
just doesn't parallelize dependencies like make -j does. Use background
processes with wait to run op-program and kona prestate builds concurrently.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The cd into cannon/ was changing the CWD for the rest of the script,
causing gotestsum to run from cannon/ instead of the repo root. The
original Makefile used $(MAKE) -C which spawns a subprocess. Use a
subshell to match that behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The bare `cd op-program` on line 180 changed cwd persistently, so the
following `cd rust` tried to resolve `op-program/rust/` which doesn't
exist. Wrap both in subshells to preserve the original working directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ajsutton ajsutton force-pushed the aj/migrate-root-makefile-to-just branch from b8b50f9 to f9af61b Compare March 13, 2026 00:09
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from 3f01ec5 to 7f50e24 Compare March 13, 2026 00:09
ajsutton and others added 2 commits March 13, 2026 00:32
These directories were removed in #19506 but the justfile still
referenced them, causing go-tests-short-ci to fail with
"lstat ./devnet-sdk/: no such file or directory".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Migrates all CircleCI make invocations to just for targets that have
been migrated to justfiles. Remaining make calls are for packages not
yet migrated (op-challenger, op-node, op-service, op-chain-ops fuzz
targets) and cannon/testdata which has its own Makefile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ajsutton ajsutton force-pushed the aj/ci-make-to-just branch from 7f50e24 to dc80630 Compare March 13, 2026 00:32
Base automatically changed from aj/migrate-root-makefile-to-just to develop March 13, 2026 01:27
@ajsutton ajsutton added this pull request to the merge queue Mar 13, 2026
Merged via the queue into develop with commit e78a35e Mar 13, 2026
127 checks passed
@ajsutton ajsutton deleted the aj/ci-make-to-just branch March 13, 2026 01:55
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.

4 participants