Conversation
viyatb-oai
left a comment
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
[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?
There was a problem hiding this comment.
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.
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
codexorcodex-app-serverinside 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
Build Codex package archivestep to.github/workflows/rust-release.ymlafter target artifacts are staged.scripts/build_codex_package.pyfor both release bundles:primarybuildscodex-package-${TARGET}.tar.gzwith--variant codex.app-serverbuildscodex-app-server-package-${TARGET}.tar.gzwith--variant codex-app-server.--entrypoint-bin target/${TARGET}/release/<entrypoint>so packages contain the entrypoint already built by the workflow.Verification
.github/workflows/rust-release.ymlwith Ruby's YAML loader.Stack created with Sapling. Best reviewed with ReviewStack.