diff --git a/.github/workflows/fork-ci.yml b/.github/workflows/fork-ci.yml index ab2ac399a40b..099963b88a55 100644 --- a/.github/workflows/fork-ci.yml +++ b/.github/workflows/fork-ci.yml @@ -32,6 +32,18 @@ jobs: persist-credentials: false fetch-depth: 0 + # fork/main sits on an upstream release tag, whose release commit bumps + # the workspace version from 0.0.0 to the tag (Cargo.lock keeps 0.0.0). + # Upstream runs its tests at 0.0.0 and never on the tag commit, so its + # snapshots render "v0.0.0" and its daemon tests rely on 0.0.0 counting + # as a dev build. Test at 0.0.0 the same way. fork-release stamps the + # real version separately, so releases are unaffected. + - name: Test at upstream's development version + run: | + sed -i '/^\[workspace.package\]$/,/^\[/ s/^version = ".*"$/version = "0.0.0"/' Cargo.toml + grep -A1 '^\[workspace.package\]$' Cargo.toml | grep -qx 'version = "0.0.0"' \ + || { echo "workspace version reset did not land" >&2; exit 1; } + - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@e081816240890017053eacbb1bdf337761dc5582 # 1.95.0 with: @@ -211,9 +223,12 @@ jobs: fi # A failing crate must not hide the rest: the baseline needs every # crate's result, and a PR should see all of its failures at once. + # nextest is fail-fast by default and cancels a crate's remaining + # tests at its first failure, so --no-fail-fast does the same within + # a crate. status=0 while IFS= read -r crate; do [[ -z "$crate" ]] && continue - cargo nextest run -p "$crate" "${filter[@]}" || status=1 + cargo nextest run -p "$crate" --no-fail-fast "${filter[@]}" || status=1 done <<< "${{ steps.crates.outputs.list }}" exit "$status" diff --git a/codex-rs/core/tests/suite/hooks.rs b/codex-rs/core/tests/suite/hooks.rs index 274874c1af9b..e9705d2a7105 100644 --- a/codex-rs/core/tests/suite/hooks.rs +++ b/codex-rs/core/tests/suite/hooks.rs @@ -4974,6 +4974,7 @@ async fn pre_tool_use_merges_hooks_json_and_config_toml() -> Result<()> { "tool_use_id": call_id, "tool_input": { "command": command, + "workdir": test.cwd_path().to_string_lossy(), }, })]; assert_eq!(expected_hook_inputs, json_hook_inputs);