Commit Graph

5 Commits

  • ci: publish codex-app-server release artifacts (#19447)
    ## Why
    The VS Code extension and desktop app do not need the full TUI binary,
    and `codex-app-server` is materially smaller than standalone `codex`. We
    still want to publish it as an official release artifact, but building
    it by tacking another `--bin` onto the existing release `cargo build`
    invocations would lengthen those jobs.
    
    This change keeps `codex-app-server` on its own release bundle so it can
    build in parallel with the existing `codex` and helper bundles.
    
    ## What changed
    - Made `.github/workflows/rust-release.yml` bundle-aware so each macOS
    and Linux MUSL target now builds either the existing `primary` bundle
    (`codex` and `codex-responses-api-proxy`) or a standalone `app-server`
    bundle (`codex-app-server`).
    - Preserved the historical artifact names for the primary macOS/Linux
    bundles so `scripts/stage_npm_packages.py` and
    `codex-cli/scripts/install_native_deps.py` continue to find release
    assets under the paths they already expect, while giving the new
    app-server artifacts distinct names.
    - Added a matching `app-server` bundle to
    `.github/workflows/rust-release-windows.yml`, and updated the final
    Windows packaging job to download, sign, stage, and archive
    `codex-app-server.exe` alongside the existing release binaries.
    - Generalized the shared signing actions in
    `.github/actions/linux-code-sign/action.yml`,
    `.github/actions/macos-code-sign/action.yml`, and
    `.github/actions/windows-code-sign/action.yml` so each workflow row
    declares its binaries once and reuses that list for build, signing, and
    staging.
    - Added `codex-app-server` to `.github/dotslash-config.json` so releases
    also publish a generated DotSlash manifest for the standalone app-server
    binary.
    - Kept the macOS DMG focused on the existing `primary` bundle;
    `codex-app-server` ships as the regular standalone archives and DotSlash
    manifest.
    
    ## Verification
    - Parsed the modified workflow and action YAML files locally with
    `python3` + `yaml.safe_load(...)`.
    - Parsed `.github/dotslash-config.json` locally with `python3` +
    `json.loads(...)`.
    - Reviewed the resulting release matrices, artifact names, and packaging
    paths to confirm that `codex-app-server` is built separately on macOS,
    Linux MUSL, and Windows, while the existing npm staging and Windows
    `codex` zip bundling contracts remain intact.
  • Add JIT entitlement for macosx (#15409)
    Without this entitlement, hardened mac os release binaries are unable to
    allocate the executable memory for the JIT compiled JS.
    
    Tested with local signing.  Without entitlement I reproduce the error:
    ```
    #
    # Fatal process out of memory: Failed to reserve virtual memory for CodeRange
    #
    ==== C stack trace ===============================
    
        0   codex                               0x00000001075d1acc codex + 85760716
        1   codex                               0x00000001075d6a64 codex + 85781092
        2   codex                               0x00000001075c7100 codex + 85717248
        3   codex                               0x0000000107637394 codex + 86176660
        4   codex                               0x0000000107823cfc codex + 88194300
        5   codex                               0x000000010777c438 codex + 87508024
        6   codex                               0x000000010777d130 codex + 87511344
        7   codex                               0x0000000107c87a54 codex + 92797524
        8   codex                               0x0000000107641188 codex + 86217096
        9   codex                               0x00000001076412d8 codex + 86217432
        10  codex                               0x0000000107553908 codex + 85244168
        11  codex                               0x000000010465f124 codex + 36008228
        12  codex                               0x000000010466a0d0 codex + 36053200
        13  codex                               0x000000010466ce78 codex + 36064888
        14  codex                               0x000000010734edb0 codex + 83127728
        15  libsystem_pthread.dylib             0x00000001810d3c08 _pthread_start + 136
        16  libsystem_pthread.dylib             0x00000001810ceba8 thread_start + 8
    zsh: trace trap  target/release/codex exec --enable code_mode_only --enable code_mode --
    ```
    
    With the entitlement the exec succeeds.
  • fix: tighten up shell arg quoting in GitHub workflows (#14864)
    Inspired by the work done over in
    https://github.com/openai/codex-action/pull/74, this tightens up our use
    of GitHub expressions as shell/environment variables.
  • [release] Add a dmg target for MacOS (#8207)
    Add a dmg target that bundles the codex and codex responses api proxy
    binaries for MacOS. this target is signed and notarized.
    
    Verified by triggering a build here:
    https://github.com/openai/codex/actions/runs/20318136302/job/58367155205.
    Downloaded the artifact and verified that the dmg is signed and
    notarized, and the codex binary contained works as expected.
  • chore: mac codesign refactor (#8085)
    ### Summary
    Similar to our linux and windows codesign, moving mac codesign logic
    into its own files.