mirror of
https://github.com/openai/codex.git
synced 2026-08-23 13:09:46 +00:00
## Why Checking only the pull request head can miss conflicts with changes already on `main`. ## What changed Remove explicit pull request head refs from required workflow checkouts so GitHub Actions checks out the synthetic merge commit by default. Keep the blocking gate on the same combined revision as the child workflows it evaluates, and document the merge-commit policy in the workflow README. GitOrigin-RevId: dc357caa5dc43f46b9b9a0edea6ee560b4fe8efb
38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# Workflow Strategy
|
|
|
|
The workflows in this directory are split so that pull requests get fast, review-friendly signal while `main` still gets the full cross-platform verification pass.
|
|
|
|
## Pull Requests
|
|
|
|
- Required checks run against GitHub's synthetic merge commit, not the pull
|
|
request head alone. This includes changes already on `main` and catches
|
|
conflicts before they reach the branch.
|
|
- `bazel.yml` is the main pre-merge verification path for Rust code.
|
|
It runs Bazel `test` and Bazel `clippy` on the supported Bazel targets,
|
|
including the generated Rust test binaries needed to lint inline `#[cfg(test)]`
|
|
code.
|
|
- `rust-ci.yml` keeps the Cargo-native PR checks intentionally small:
|
|
- `cargo fmt --check`
|
|
- `cargo shear`
|
|
- `argument-comment-lint` on Linux, macOS, and Windows
|
|
- `tools/argument-comment-lint` package tests when the lint or its workflow wiring changes
|
|
|
|
## Post-Merge On `main`
|
|
|
|
- `bazel.yml` also runs on pushes to `main`.
|
|
This re-verifies the merged Bazel path and helps keep the BuildBuddy caches warm.
|
|
- `rust-ci-full.yml` is the full Cargo-native verification workflow.
|
|
It keeps the heavier checks off the PR path while still validating them after merge:
|
|
- the full Cargo `clippy` matrix
|
|
- the full Cargo `nextest` matrix via per-platform archive-backed shards
|
|
- Windows ARM64 nextest archives cross-compiled on Windows x64, then replayed on native Windows ARM64 shards
|
|
- release-profile Cargo builds
|
|
- cross-platform `argument-comment-lint`
|
|
- Linux remote-env tests
|
|
|
|
## Rule Of Thumb
|
|
|
|
- If a build/test/clippy check can be expressed in Bazel, prefer putting the PR-time version in `bazel.yml`.
|
|
- Keep `rust-ci.yml` fast enough that it usually does not dominate PR latency.
|
|
- Reserve `rust-ci-full.yml` for heavyweight Cargo-native coverage that Bazel does not replace yet.
|