From 43cbc2e82ad41b9cee84fa512c4f2f049f5c4180 Mon Sep 17 00:00:00 2001 From: Dylan Hurd Date: Fri, 24 Apr 2026 13:18:55 -0700 Subject: [PATCH] chore(ci) Build a release of codex-app-server --- .github/actions/linux-code-sign/action.yml | 2 +- .github/actions/macos-code-sign/action.yml | 3 ++- .github/actions/windows-code-sign/action.yml | 1 + .github/dotslash-config.json | 28 ++++++++++++++++++++ .github/workflows/rust-release-windows.yml | 26 +++++++++++++++++- .github/workflows/rust-release.yml | 10 ++++++- 6 files changed, 66 insertions(+), 4 deletions(-) diff --git a/.github/actions/linux-code-sign/action.yml b/.github/actions/linux-code-sign/action.yml index 12e521187f..5c160f4288 100644 --- a/.github/actions/linux-code-sign/action.yml +++ b/.github/actions/linux-code-sign/action.yml @@ -31,7 +31,7 @@ runs: exit 1 fi - for binary in codex codex-responses-api-proxy; do + for binary in codex codex-responses-api-proxy codex-app-server; do artifact="${dest}/${binary}" if [[ ! -f "$artifact" ]]; then echo "Binary $artifact not found" diff --git a/.github/actions/macos-code-sign/action.yml b/.github/actions/macos-code-sign/action.yml index 200b23901f..f0d2196ac8 100644 --- a/.github/actions/macos-code-sign/action.yml +++ b/.github/actions/macos-code-sign/action.yml @@ -134,7 +134,7 @@ runs: entitlements_path="$GITHUB_ACTION_PATH/codex.entitlements.plist" - for binary in codex codex-responses-api-proxy; do + for binary in codex codex-responses-api-proxy codex-app-server; do path="codex-rs/target/${TARGET}/release/${binary}" codesign --force --options runtime --timestamp --entitlements "$entitlements_path" --sign "$APPLE_CODESIGN_IDENTITY" "${keychain_args[@]}" "$path" done @@ -184,6 +184,7 @@ runs: notarize_binary "codex" notarize_binary "codex-responses-api-proxy" + notarize_binary "codex-app-server" - name: Sign and notarize macOS dmg if: ${{ inputs.sign-dmg == 'true' }} diff --git a/.github/actions/windows-code-sign/action.yml b/.github/actions/windows-code-sign/action.yml index b79c790f16..4cc71148ed 100644 --- a/.github/actions/windows-code-sign/action.yml +++ b/.github/actions/windows-code-sign/action.yml @@ -55,3 +55,4 @@ runs: ${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex-responses-api-proxy.exe ${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex-windows-sandbox-setup.exe ${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex-command-runner.exe + ${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex-app-server.exe diff --git a/.github/dotslash-config.json b/.github/dotslash-config.json index 00e9032cf1..7b40201fb9 100644 --- a/.github/dotslash-config.json +++ b/.github/dotslash-config.json @@ -56,6 +56,34 @@ } } }, + "codex-app-server": { + "platforms": { + "macos-aarch64": { + "regex": "^codex-app-server-aarch64-apple-darwin\\.zst$", + "path": "codex-app-server" + }, + "macos-x86_64": { + "regex": "^codex-app-server-x86_64-apple-darwin\\.zst$", + "path": "codex-app-server" + }, + "linux-x86_64": { + "regex": "^codex-app-server-x86_64-unknown-linux-musl\\.zst$", + "path": "codex-app-server" + }, + "linux-aarch64": { + "regex": "^codex-app-server-aarch64-unknown-linux-musl\\.zst$", + "path": "codex-app-server" + }, + "windows-x86_64": { + "regex": "^codex-app-server-x86_64-pc-windows-msvc\\.exe\\.zst$", + "path": "codex-app-server.exe" + }, + "windows-aarch64": { + "regex": "^codex-app-server-aarch64-pc-windows-msvc\\.exe\\.zst$", + "path": "codex-app-server.exe" + } + } + }, "codex-command-runner": { "platforms": { "windows-x86_64": { diff --git a/.github/workflows/rust-release-windows.yml b/.github/workflows/rust-release-windows.yml index f1aee51911..1c49982161 100644 --- a/.github/workflows/rust-release-windows.yml +++ b/.github/workflows/rust-release-windows.yml @@ -65,6 +65,20 @@ jobs: runs_on: group: codex-runners labels: codex-windows-arm64 + - runner: windows-x64 + target: x86_64-pc-windows-msvc + bundle: app-server + build_args: --bin codex-app-server + runs_on: + group: codex-runners + labels: codex-windows-x64 + - runner: windows-arm64 + target: aarch64-pc-windows-msvc + bundle: app-server + build_args: --bin codex-app-server + runs_on: + group: codex-runners + labels: codex-windows-arm64 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -106,9 +120,11 @@ jobs: if [[ "${{ matrix.bundle }}" == "primary" ]]; then cp target/${{ matrix.target }}/release/codex.exe "$output_dir/codex.exe" cp target/${{ matrix.target }}/release/codex-responses-api-proxy.exe "$output_dir/codex-responses-api-proxy.exe" - else + elif [[ "${{ matrix.bundle }}" == "helpers" ]]; then cp target/${{ matrix.target }}/release/codex-windows-sandbox-setup.exe "$output_dir/codex-windows-sandbox-setup.exe" cp target/${{ matrix.target }}/release/codex-command-runner.exe "$output_dir/codex-command-runner.exe" + else + cp target/${{ matrix.target }}/release/codex-app-server.exe "$output_dir/codex-app-server.exe" fi - name: Upload Windows binaries @@ -161,6 +177,12 @@ jobs: name: windows-binaries-${{ matrix.target }}-helpers path: codex-rs/target/${{ matrix.target }}/release + - name: Download prebuilt Windows app-server binary + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + with: + name: windows-binaries-${{ matrix.target }}-app-server + path: codex-rs/target/${{ matrix.target }}/release + - name: Verify binaries shell: bash run: | @@ -169,6 +191,7 @@ jobs: ls -lh target/${{ matrix.target }}/release/codex-responses-api-proxy.exe ls -lh target/${{ matrix.target }}/release/codex-windows-sandbox-setup.exe ls -lh target/${{ matrix.target }}/release/codex-command-runner.exe + ls -lh target/${{ matrix.target }}/release/codex-app-server.exe - name: Sign Windows binaries with Azure Trusted Signing uses: ./.github/actions/windows-code-sign @@ -191,6 +214,7 @@ jobs: cp target/${{ matrix.target }}/release/codex-responses-api-proxy.exe "$dest/codex-responses-api-proxy-${{ matrix.target }}.exe" cp target/${{ matrix.target }}/release/codex-windows-sandbox-setup.exe "$dest/codex-windows-sandbox-setup-${{ matrix.target }}.exe" cp target/${{ matrix.target }}/release/codex-command-runner.exe "$dest/codex-command-runner-${{ matrix.target }}.exe" + cp target/${{ matrix.target }}/release/codex-app-server.exe "$dest/codex-app-server-${{ matrix.target }}.exe" - name: Install DotSlash uses: facebook/install-dotslash@1e4e7b3e07eaca387acb98f1d4720e0bee8dbb6a # v2 diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index efd3dd11eb..e47da405fa 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -220,7 +220,7 @@ jobs: shell: bash run: | echo "CARGO_PROFILE_RELEASE_LTO: ${CARGO_PROFILE_RELEASE_LTO}" - cargo build --target ${{ matrix.target }} --release --timings --bin codex --bin codex-responses-api-proxy + cargo build --target ${{ matrix.target }} --release --timings --bin codex --bin codex-responses-api-proxy --bin codex-app-server - name: Upload Cargo timings uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 @@ -266,6 +266,7 @@ jobs: # signed binaries into a dmg. codex_binary_path="${release_dir}/codex" proxy_binary_path="${release_dir}/codex-responses-api-proxy" + app_server_binary_path="${release_dir}/codex-app-server" rm -rf "$dmg_root" mkdir -p "$dmg_root" @@ -278,9 +279,14 @@ jobs: echo "Binary $proxy_binary_path not found" exit 1 fi + if [[ ! -f "$app_server_binary_path" ]]; then + echo "Binary $app_server_binary_path not found" + exit 1 + fi ditto "$codex_binary_path" "${dmg_root}/codex" ditto "$proxy_binary_path" "${dmg_root}/codex-responses-api-proxy" + ditto "$app_server_binary_path" "${dmg_root}/codex-app-server" rm -f "$dmg_path" hdiutil create \ @@ -316,10 +322,12 @@ jobs: cp target/${{ matrix.target }}/release/codex "$dest/codex-${{ matrix.target }}" cp target/${{ matrix.target }}/release/codex-responses-api-proxy "$dest/codex-responses-api-proxy-${{ matrix.target }}" + cp target/${{ matrix.target }}/release/codex-app-server "$dest/codex-app-server-${{ matrix.target }}" if [[ "${{ matrix.target }}" == *linux* ]]; then cp target/${{ matrix.target }}/release/codex.sigstore "$dest/codex-${{ matrix.target }}.sigstore" cp target/${{ matrix.target }}/release/codex-responses-api-proxy.sigstore "$dest/codex-responses-api-proxy-${{ matrix.target }}.sigstore" + cp target/${{ matrix.target }}/release/codex-app-server.sigstore "$dest/codex-app-server-${{ matrix.target }}.sigstore" fi if [[ "${{ matrix.target }}" == *apple-darwin ]]; then