Skip to content

ci: build Codex package archives in release workflow#23582

Merged
bolinfest merged 1 commit into
mainfrom
pr23582
May 20, 2026
Merged

ci: build Codex package archives in release workflow#23582
bolinfest merged 1 commit into
mainfrom
pr23582

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented May 20, 2026

Why

Release CI already builds the Codex entrypoints before staging artifacts, and the package builder can now package those prebuilt binaries directly. The workflow should produce package-shaped sidecar archives from the same staged entrypoints that downstream distribution channels will eventually consume, without rebuilding codex or codex-app-server inside the packaging step.

This intentionally does not publish the new package archives as GitHub Release assets yet. The archives are kept with workflow artifacts until npm, Homebrew, install.sh, winget, and related consumers are ready to switch over.

What changed

  • Adds a Build Codex package archive step to .github/workflows/rust-release.yml after target artifacts are staged.
  • Runs scripts/build_codex_package.py for both release bundles:
    • primary builds codex-package-${TARGET}.tar.gz with --variant codex.
    • app-server builds codex-app-server-package-${TARGET}.tar.gz with --variant codex-app-server.
  • Passes --entrypoint-bin target/${TARGET}/release/<entrypoint> so packages contain the entrypoint already built by the workflow.
  • Deletes both package archive names before the final GitHub Release upload so they remain workflow artifacts only for now.

Verification

  • Parsed .github/workflows/rust-release.yml with Ruby's YAML loader.

Stack created with Sapling. Best reviewed with ReviewStack.

Copy link
Copy Markdown
Collaborator

@viyatb-oai viyatb-oai left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Copy Markdown
Collaborator

@viyatb-oai viyatb-oai left a comment

Choose a reason for hiding this comment

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

One P2 follow-up on package-archive coverage across release paths.

cp target/${{ matrix.target }}/release/codex-${{ matrix.target }}.dmg "$dest/codex-${{ matrix.target }}.dmg"
fi

- name: Build Codex package archive
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[P2] This sidecar builder only runs in the main build job. promote_signed skips that job and uses stage-signed-macos, while Windows release artifacts are produced through rust-release-windows.yml, so those release paths never emit the package archives this PR is introducing. That leaves the workflow artifacts inconsistent across release modes/targets even though the PR is setting up package archives for future consumers. Could we mirror this archive step in the signed-promotion macOS path and the Windows release workflow, or factor the packaging invocation into a shared helper that all three paths call before artifact upload?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Addressed in the latest push. I factored the package-archive invocation into .github/scripts/build-codex-package-archive.sh, then wired it into all three release paths: the existing Linux/macOS build matrix, stage-signed-macos for promote_signed, and rust-release-windows.yml after Windows signing/staging. The signed macOS path packages from the target-suffixed signed files in dist/<target>, and Windows emits both primary and app-server package archives before artifact upload. Verified with Bash syntax checks, YAML parsing for both workflows, and a local signed-mac-style helper run that produced codex-package-aarch64-apple-darwin.tar.gz.

@bolinfest bolinfest enabled auto-merge (squash) May 20, 2026 05:41
@bolinfest bolinfest merged commit 57a68fb into main May 20, 2026
45 checks passed
@bolinfest bolinfest deleted the pr23582 branch May 20, 2026 05:43
@github-actions github-actions Bot locked and limited conversation to collaborators May 20, 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.

2 participants