Skip to content

ci: run Codex package builder tests#23760

Merged
bolinfest merged 1 commit into
mainfrom
pr23760
May 21, 2026
Merged

ci: run Codex package builder tests#23760
bolinfest merged 1 commit into
mainfrom
pr23760

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented May 20, 2026

Why

#23752 and #23759 add Python unit tests for the Codex package builder, but the root CI workflow did not run tests under scripts/codex_package. That left the zstd resolution and prebuilt-resource packaging behavior covered locally without a CI check.

What changed

  • Add a root CI step in .github/workflows/ci.yml that runs python3 -m unittest discover -s scripts/codex_package -p "test_*.py".
  • Keep the step with the existing Python verification checks before Node/pnpm setup.

Verification

  • python3 -m unittest discover -s scripts/codex_package -p "test_*.py"
  • python3 -m py_compile scripts/codex_package/*.py

@bolinfest bolinfest changed the base branch from main to pr23759 May 20, 2026 21:30
bolinfest added a commit that referenced this pull request May 20, 2026
## Why

Release packaging should be a staging step once release binaries have
already been built and signed. The Windows release job was downloading
and signing `codex-command-runner.exe` and
`codex-windows-sandbox-setup.exe`, but `scripts/build_codex_package.py`
still rebuilt those helpers while creating the package archives.

That makes the package step slower and, more importantly, risks putting
helper binaries in the archive that were produced after the signing
step. Linux had the same shape for package resources: `bwrap` could be
rebuilt by the package builder instead of being passed in as a prebuilt
release artifact.

This builds on #23752, which fixes `.tar.zst` creation when Windows
runners rely on the repository DotSlash `zstd` wrapper.

## What changed

- Add explicit prebuilt resource inputs to the Codex package builder:
  - `--bwrap-bin`
  - `--codex-command-runner-bin`
  - `--codex-windows-sandbox-setup-bin`
- Make `.github/scripts/build-codex-package-archive.sh` pass resource
binaries from the release output directory when they are already
present.
- Build Linux `bwrap` for app-server release jobs too, so app-server
package creation does not invoke Cargo just to supply the package
resource.
- Keep macOS package creation as a no-Cargo path when `--entrypoint-bin`
is provided, since macOS packages have no resource binaries.
- Add unit coverage showing prebuilt macOS, Linux, and Windows package
inputs result in no source-built binaries.

## Verification

- `python3 -m unittest discover -s scripts/codex_package -p 'test_*.py'`
- `python3 -m py_compile scripts/codex_package/*.py`
- `bash -n .github/scripts/build-codex-package-archive.sh`
- Dry-ran Linux and Windows package builds with fake prebuilt resources
and a nonexistent Cargo path to verify the package builder did not
invoke Cargo.


---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/23759).
* #23760
* __->__ #23759
Base automatically changed from pr23759 to main May 20, 2026 21:51
@bolinfest bolinfest merged commit 0b5cf85 into main May 21, 2026
48 of 64 checks passed
@bolinfest bolinfest deleted the pr23760 branch May 21, 2026 00:00
@github-actions github-actions Bot locked and limited conversation to collaborators May 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.

2 participants