You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`gh run view <run_id> --job <job_id> --log-failed`
21
-
- Gotchas (encountered in this task):
22
-
-`gh pr status --json ...` can error with `Unknown JSON field: ...` if you request unsupported fields; use `gh pr status` (no JSON) or `gh pr view --json ...`. In this task, `gh pr status --json currentBranch,createdBy,needsReview,reviewRequests,statusCheckRollup` failed with `Unknown JSON field: "currentBranch"`.
23
-
-`gh pr checks` may show duplicate entries when workflows run for both `push` and `pull_request` events; compare the run URLs and focus on the newest one.
24
-
- zsh can produce `parse error near '}'` if a `gh ... --jq` expression containing `{ ... }` isn't fully quoted; wrap the whole jq program in single quotes.
- Suggested (Unverified): `gh run view --job <JOB_ID> --log-failed`
16
+
- Gotchas (observed in this task):
17
+
- On some Linux runners (especially self-hosted), `sccache` can fail during CMake `try_compile` with `sccache: error: while hashing the input file ... No such file or directory (os error 2)`.
18
+
- On macOS, `mozilla-actions/[email protected]` can fail with transient network errors like `HttpError: Connect Timeout Error`. Our `.github/workflows/ci_macos.yml` treats "Setup sccache" as best-effort (`continue-on-error: true`) so the job continues without sccache.
25
19
- If `CI gz-physics` fails, reproduce locally with the Gazebo workflow in [build-system.md](build-system.md#gazebo-integration-feature).
26
20
27
21
## Workflow Architecture
@@ -83,16 +77,7 @@ jobs all share the same configuration**. You can disable auto-detection with
@@ -127,6 +118,11 @@ directly or via `pixi`. pixi still forwards `CMAKE_*_COMPILER_LAUNCHER` to any
127
118
external CMake projects it drives (e.g., gz-physics) so nested builds benefit
128
119
from the same cache.
129
120
121
+
#### CI reliability notes
122
+
123
+
- The `.github/actions/configure-compiler-cache` action may disable the sccache launcher on some Linux runners (e.g., self-hosted or non-Ubuntu) and fall back to `ccache` when available (otherwise `env`) to avoid flaky `try_compile` failures.
124
+
- In `.github/workflows/ci_macos.yml`, the "Setup sccache" step is best-effort (`continue-on-error: true`) so transient download timeouts don't fail the job.
125
+
130
126
## MSVC Multi-Core Compilation
131
127
132
128
**Critical configuration** (`CMakeLists.txt` line 282-284):
@@ -260,15 +256,6 @@ All tests run through `pixi run test-all`, which includes:
260
256
261
257
## Monitoring and Maintenance
262
258
263
-
### Watching runs from the CLI
264
-
265
-
- List recent runs: `gh run list --branch <branch> --limit 10`
266
-
- Watch a run: `gh run watch <run-id> --interval 30 --compact --exit-status`
267
-
- View failed logs: `gh run view <run-id> --log-failed`
268
-
269
-
Note: `gh run watch`exits only after the entire workflow run completes; it does
270
-
not stop immediately when the first job fails.
271
-
272
259
### Expected CI Times
273
260
274
261
**Without caching (first run):**
@@ -315,19 +302,26 @@ not stop immediately when the first job fails.
- Add dependency tracking to cache key (e.g., hash of `pixi.lock`)
421
404
- Run full clean build on schedule to catch issues
422
405
406
+
### sccache Failures and Flakiness
407
+
408
+
**Symptoms:**
409
+
410
+
- CMake `try_compile` fails with `sccache: error: while hashing the input file ... No such file or directory (os error 2)`
411
+
- The "Setup sccache" workflow step fails with `HttpError: Connect Timeout Error` (usually transient)
412
+
413
+
**What to check:**
414
+
415
+
1. Whether the job ran on a self-hosted runner vs GitHub-hosted (see the runner metadata snippet in [CI Triage](#ci-triage))
416
+
2. Whether `.github/actions/configure-compiler-cache` disabled sccache and selected `ccache` (or `env` if unavailable) (look for its stderr messages and `DART_COMPILER_CACHE` in logs)
417
+
3. If this only happens on CI, treat sccache as optional and focus on correctness first; caching should not be required to pass CI
0 commit comments