Add a Linux x64 PR gate for codex-rs - #4
Merged
Conversation
Upstream's blocking-ci fans out to Bazel, nextest, and the SDK suites across self-hosted runner groups that do not exist on this fork, so it is disabled here. That left codex-rs changes with no verification of any kind. One ubuntu-24.04 runner, two parallel jobs: cargo nextest run --locked -p codex-core --lib --no-fail-fast cargo clippy --locked -p codex-core --all-targets Three things this workspace requires that took a run each to find: - RUST_MIN_STACK=8388608. `cargo test` runs each test on a spawned thread with Rust's 2 MiB default and codex-core overflows it. Upstream sets the same 8 MiB in rust-ci.yml, rust-ci-full.yml, the nextest platform workflow, and .bazelrc. - nextest rather than `cargo test`. codex-rs/.config/nextest.toml is the real test contract — retries, slow-timeout, and max-threads groups for tests that cannot run concurrently — and cargo test honors none of it. Sharing one process across 2217 tests also leaks global tracing-subscriber state, which failed session::turn::tests::post_sampling_token_estimate_is_disabled_by_ always_on_sinks and exec::tests::process_exec_tool_call_cancellation_allows_ sigterm_cleanup. Both pass under process-per-test isolation: 2217 run, 2217 passed, in 131s. - `--locked`, so a Cargo.lock that does not satisfy the manifests fails here rather than being silently regenerated. Scoped to codex-core's lib tests rather than tests/suite. The integration suite wants sandbox helpers, exec servers, and network fixtures; upstream runs it on dedicated infrastructure, and on a hosted runner it would fail in ways that describe the runner rather than the change. Formatting is not checked. The canonical command is `just fmt-check`, and codex-rs/rustfmt.toml sets imports_granularity, a nightly-only option that stable cargo fmt silently ignores. Wiring that up properly is separate work. Standard hosted runners are free on public repositories, so this costs nothing per pull request.
Harold Hunt (huntharo)
force-pushed
the
agent/pwragent-ci
branch
from
August 19, 2026 15:20
5f01fb1 to
9d0fac3
Compare
Harold Hunt (huntharo)
had a problem deploying
to
windows-signing
August 19, 2026 17:05 — with
GitHub Actions
Failure
Harold Hunt (huntharo)
had a problem deploying
to
windows-signing
August 19, 2026 17:24 — with
GitHub Actions
Failure
Harold Hunt (huntharo)
added a commit
that referenced
this pull request
Aug 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstream's blocking-ci fans out to Bazel, nextest, and the SDK suites across
self-hosted runner groups that do not exist on this fork, so it is disabled
here. That left codex-rs changes with no verification of any kind: PR #1 has
zero checks today.
This is the useful sliver — one ubuntu-24.04 runner, two parallel jobs:
cargo test --locked -p codex-core --lib
cargo clippy --locked -p codex-core --all-targets
--locked is deliberate. It fails when Cargo.lock does not already satisfy the
manifests, which is exactly the check a hand-edited lockfile needs and which a
plain build would paper over.
Scoped to codex-core's lib tests rather than tests/suite. The integration suite
is environment-sensitive (sandbox helpers, exec servers, network fixtures) and
upstream runs it on dedicated infrastructure; pulling it onto a hosted runner
would produce failures that say more about the runner than the change. Widen
later if it proves stable.
Formatting is not checked. The canonical command is
just fmt-check, whichshells out to scripts/format.py, and codex-rs/rustfmt.toml sets
imports_granularity — a nightly-only option that stable cargo fmt silently
ignores. Wiring that up is separate work rather than something to fake here.
Standard hosted runners are free on public repositories, so this costs nothing
per pull request.
This PR is its own first test: it touches
.github/workflows/pwragent-ci.yml, which is in the path filter, so the gate runs against itself.What it does not cover, so nobody assumes more than it proves:
codex-coreonly, not the whole workspace.core/tests/suite.Unverified until it runs: whether a hosted
ubuntu-24.04runner has the disk and time for this workspace. The reclaim step buys ~20 GB and the timeout is 90 minutes; if either proves short, the next lever issccacheor narrowing the test scope further.🤖 Generated with Claude Code