Skip to content

[EASY] Build and ship the solana service binaries in the release images - #4765

Merged
squadgazzz merged 1 commit into
mainfrom
solana-infra/be-228-ci-images
Aug 21, 2026
Merged

[EASY] Build and ship the solana service binaries in the release images#4765
squadgazzz merged 1 commit into
mainfrom
solana-infra/be-228-ci-images

Conversation

@squadgazzz

@squadgazzz squadgazzz commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Description

The release pipeline only builds and ships the EVM binaries, so the devnet deployment has no solana images to pull. This adds the four solana services that have binaries on main (solana-indexer, solana-orderbook, solana-driver, solana-solvers) to every image path: the release cargo build in the deploy workflow, the production image (Dockerfile.deploy-ci), and the local/playground image with its per-service stages. autopilot-svm follows once its binary wiring PR merges.

The migration image needs no change, it already copies the whole database/ directory including the solana flyway series.

Changes

  • The deploy workflow's release build and both Dockerfiles cover the four solana service binaries

How to test

CI builds the images on this PR. The deployed combined image gains the four binaries under /usr/local/bin, entrypoints unchanged.

@linear-code

linear-code Bot commented Aug 20, 2026

Copy link
Copy Markdown

BE-228

@squadgazzz squadgazzz changed the title Build and ship the solana service binaries in the release images [EASY] Build and ship the solana service binaries in the release images Aug 20, 2026
@squadgazzz

Copy link
Copy Markdown
Contributor Author

@claude review

@claude

claude Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Claude finished @squadgazzz's task in 1m 13s —— View job


PR Review

  • Read the changed files and gather context
  • Review deploy workflow, Dockerfile, Dockerfile.deploy-ci
  • Verify crate/binary names and workspace membership

Verdict: LGTM — no issues found.

The change is correct and internally consistent:

  • All four crate names (solana-indexer, solana-orderbook, solana-driver, solana-solvers) exist under crates/, are workspace members (members = ["crates/*"]), and each declares a [[bin]] whose name matches the path used in the -p flags and the cp/COPY lines — so both cargo build -p … and the binary copies resolve correctly.
  • The three image paths line up: the release build in deploy.yaml produces the binaries, Dockerfile.deploy-ci (the production image actually used by the deploy job) copies them from the binaries build context, and Dockerfile (playground) adds both the per-service stages and the combined final-stage copies.
  • Entrypoints for the new per-service stages match the pattern of the existing ones.
  • Agree with the PR note that the migration image needs no change — it copies the whole database/ directory.

One thing to watch (not a blocker): if any of the solana crates pull in system build deps beyond what the cargo-build stage already installs (git libssl-dev pkg-config build-essential), the Docker build would surface it. CI on this PR builds all three images, so that will be caught here.
· solana-infra/be-228-ci-images

@squadgazzz
squadgazzz marked this pull request as ready for review August 20, 2026 16:04
@squadgazzz
squadgazzz requested review from a team as code owners August 20, 2026 16:04
@claude

claude Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Claude finished @squadgazzz's task in 1m 13s —— View job


PR Review complete

  • Read the changed files and gather context
  • Review deploy workflow, Dockerfile, Dockerfile.deploy-ci
  • Post findings and summary

No blocking issues found. This is a clean, correct change.

Verified:

  • All four package names (solana-indexer, solana-orderbook, solana-driver, solana-solvers) match existing workspace crates, and each declares a [[bin]] whose name equals the hyphenated crate name — so the cargo build -p … targets and the cp target/release/<name> / COPY --from=binaries <name> paths all resolve.
  • The four binaries are added consistently across all three image paths: the release cargo build in deploy.yaml, the in-container build + copy in Dockerfile (including the per-service FROM intermediate AS solana-* stages used by the playground), and the final COPY --from=binaries block in Dockerfile.deploy-ci (the production image built with build-contexts: binaries=target/release).
  • Ordering is consistent everywhere (indexer → orderbook → driver → solvers), and entrypoints for the combined image are unchanged (tini), matching the PR description.

The migration image is correctly left untouched (it already copies the whole database/ tree), and deferring autopilot-svm until its binary wiring lands is the right call.

@squadgazzz
squadgazzz added this pull request to the merge queue Aug 20, 2026
@squadgazzz
squadgazzz removed this pull request from the merge queue due to a manual request Aug 20, 2026
@squadgazzz
squadgazzz added this pull request to the merge queue Aug 20, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 20, 2026
@squadgazzz
squadgazzz added this pull request to the merge queue Aug 20, 2026
@squadgazzz
squadgazzz removed this pull request from the merge queue due to a manual request Aug 20, 2026
@squadgazzz
squadgazzz added this pull request to the merge queue Aug 21, 2026
Merged via the queue into main with commit e6f07f6 Aug 21, 2026
27 checks passed
@squadgazzz
squadgazzz deleted the solana-infra/be-228-ci-images branch August 21, 2026 09:50
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants