Skip to content

ci: pin foundry to v1.2.3 in Dockerfile.foundry - #494

Merged
topocount merged 2 commits into
mainfrom
kjs/neyn-13118-pin-foundry-in-dockerfile
Aug 5, 2026
Merged

ci: pin foundry to v1.2.3 in Dockerfile.foundry#494
topocount merged 2 commits into
mainfrom
kjs/neyn-13118-pin-foundry-in-dockerfile

Conversation

@topocount

@topocount topocount commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Dockerfile.foundry installs Foundry with foundryup --install stable, which is a moving target. It currently resolves to v1.7.1, while CI installs v1.2.3 on the host via foundry-rs/foundry-toolchain. The build-image job has therefore been compiling and deploying the same sources with a different compiler than the test, coverage, and halmos jobs.

-RUN foundryup --install stable
+RUN foundryup --install v1.2.3

Why v1.2.3

main's last commit is 2025-06-17. Foundry v1.2.3 shipped 2025-06-08 and v1.3.0 on 2025-07-31, so v1.2.3 is what was stable when the tree was last formatted. It is also the only version that reproduces the checked-in formatting: forge fmt --check passes with zero diffs on main under v1.2.3 and fails under newer releases.

This closes a skew rather than introducing one — the host is already pinned to v1.2.3, and this makes the deployer image agree with it. Bump both together.

Verification

The image builds and reports forge / cast / anvil / chisel all at 1.2.3-dev (a813a2cee7 2025-06-08).

The full docker compose stack could not be exercised locally: .env.local ships ETH_MAINNET_RPC_URL / OP_MAINNET_RPC_URL / BASE_MAINNET_RPC_URL blank and CI injects them as secrets, so the anvil services exit with a value is required for '--fork-url <URL>'. That is an environment gap rather than a defect in the pin — the fork URL is required regardless of Foundry version — so build-image on this PR is the real check.

🤖 Generated with Claude Code


PR-Codex overview

This PR focuses on updating the Dockerfile.foundry to pin the Foundry version to v1.2.3 instead of tracking the stable version, ensuring consistency between the deployer image and CI jobs.

Detailed summary

  • Removed the command to install the stable version of Foundry.
  • Added a command to install Foundry version v1.2.3 to maintain consistency.
  • Added comments explaining the rationale for pinning the version.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Copilot AI lite review requested due to automatic review settings August 5, 2026 21:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Pins Foundry inside Dockerfile.foundry to a specific version to avoid the deployer image using a moving stable toolchain that can diverge from CI/compiler expectations.

Changes:

  • Replaces foundryup --install stable with foundryup --install v1.2.3.
  • Adds an in-file rationale comment describing the intended consistency goal.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Dockerfile.foundry Outdated
`foundryup --install stable` is a moving target and currently resolves to
v1.7.1, while CI installs v1.2.3 on the host via foundry-rs/foundry-toolchain.
The build-image job was therefore compiling and deploying the same sources with
a different compiler than the test, coverage, and halmos jobs.

v1.2.3 is what was stable when the tree was last touched (main's last commit is
2025-06-17; v1.2.3 shipped 2025-06-08, v1.3.0 on 2025-07-31), and it is the only
version that reproduces the checked-in formatting -- `forge fmt --check` passes
with zero diffs under it and fails under newer releases.
@topocount
topocount force-pushed the kjs/neyn-13118-pin-foundry-in-dockerfile branch from d97e7c5 to 1ba8f8d Compare August 5, 2026 21:58
@topocount
topocount enabled auto-merge (squash) August 5, 2026 21:59
@topocount
topocount merged commit 760be0e into main Aug 5, 2026
4 checks passed
@topocount
topocount deleted the kjs/neyn-13118-pin-foundry-in-dockerfile branch August 5, 2026 22:04
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Coverage after merging kjs/neyn-13118-pin-foundry-in-dockerfile into main will be

100.00%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   Bundler.sol100%100%100%100%
   BundlerV1.sol100%100%100%100%
   FnameResolver.sol100%100%100%100%
   IdGateway.sol100%100%100%100%
   IdRegistry.sol100%100%100%100%
   KeyGateway.sol100%100%100%100%
   KeyRegistry.sol100%100%100%100%
   RecoveryProxy.sol100%100%100%100%
   SnapchainConfigRegistry.sol100%100%100%100%
   StorageRegistry.sol100%100%100%100%
   TierRegistry.sol100%100%100%100%
src/abstract
   EIP712.sol100%100%100%100%
   Guardians.sol100%100%100%100%
   Migration.sol100%100%100%100%
   Nonces.sol100%100%100%100%
   Signatures.sol100%100%100%100%
src/validators
   SignedKeyRequestValidator.sol100%100%100%100%

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.

2 participants