Repository navigation
Instrument ci.yml with shared-actions telemetry (DF12-98) - #498
Conversation
Start ci-telemetry-start after the checkout and report ci-telemetry-finish under if: always() in coverage-check, linux-full and windows-compat, pinned to shared-actions 81374b6f. Finish reads the sccache-stats.json the existing recorder writes and takes setup-rust's sccache-status. A contract holds placement, always(), the status wiring and the pin.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
Summary
ValidationThe supplied evidence confirms the contract tests were added. It does not confirm test or lint results. WalkthroughAdd CI telemetry start and finish steps to ChangesCI telemetry reporting
Suggested labels: Priority: ⬇️ Low Change: Feature Merge Risk: ⚪ Minimal · up to
|
Reviewer's GuideThe PR instruments coverage-check, linux-full, and windows-compat with commit-pinned shared-actions telemetry, wiring existing setup-rust and sccache outputs into a single always-run collector record; documentation and contract tests enforce the required placement, ordering, and configuration. Sequence diagram for CI telemetry collectionsequenceDiagram
participant Job as CI job
participant Start as ci-telemetry-start
participant Rust as setup-rust
participant Recorder as record-sccache-effectiveness.sh
participant Finish as ci-telemetry-finish
participant Collector as CI observability collector
Job->>Start: Start telemetry after checkout
Job->>Rust: Run setup-rust
Rust-->>Finish: sccache-status
Job->>Recorder: Write sccache-stats.json
alt Job succeeds or fails
Job->>Finish: Run with if: always()
Finish->>Finish: Read sccache-stats.json
Finish->>Collector: Print DF12_CI_TELEMETRY record
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins. |
|
@coderabbitai At head 3bdcad4, your walkthrough for 26edf68 showed one failed row, Testing (Unit And Behavioural), and the Docstring Coverage warning. The docstrings are added (every helper in ci_telemetry_test.py now has one). For the Testing row I argue it cannot be met the way the resolution asks, and that the behaviour it names is already proven, with evidence:
Does that clear the Testing (Unit And Behavioural) row, and is anything else blocking a merge at this head? |
|
Tip For best results, initiate chat on the files or code changes. I couldn't verify the requested revision for You are interacting with an AI system. |
|
@coderabbitai At head 3bdcad4, please assess the one failed row of your walkthrough for 26edf68, Testing (Unit And Behavioural), on the evidence in this pull request alone; no other repository needs to be read. The Docstring Coverage warning is fixed (every helper in ci_telemetry_test.py has a docstring). The row asks for an act run of the pinned telemetry actions. I argue that is not the right test here:
Does that clear the Testing (Unit And Behavioural) row, and is anything else blocking a merge at this head? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
git rev-parse HEAD
git status --short
fd '^ci_telemetry_test\.py$'
ast-grep outline tests/workflow_contracts/ci_telemetry_test.py --items all
git diff --stat 26edf681 3bdcad47
gh pr view 498 --repo leynos/whitaker --json headRefOid,state,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup
gh api repos/leynos/whitaker/issues/498/comments --paginate --jq '.[] | select(.user.login == "coderabbitai[bot]") | {id,body}'
gh api repos/leynos/whitaker/pulls/498/reviews --paginate --jq '.[] | {user:.user.login,state,commit_id,body}'Length of output: 2530 🏁 Script executed: #!/bin/bash
set -u
sed -n '1,150p' tests/workflow_contracts/ci_telemetry_test.py
rg -n -C 5 'ci-telemetry|sccache-status|Record sccache|Check sccache|Record disk headroom|id: setup-rust|actions/checkout@' .github/workflows/ci.yml
gh pr view 498 --repo leynos/whitaker --json headRefOid,state,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup
gh api repos/leynos/whitaker/issues/498/comments --paginate --jq '.[] | select(.user.login == "coderabbitai[bot]") | {id,body}'
gh api repos/leynos/whitaker/pulls/498/reviews --paginate --jq '.[] | {user:.user.login,state,commit_id,body}'
gh api graphql -f query='query { repository(owner:"leynos",name:"whitaker") { pullRequest(number:498) { reviewThreads(first:100) { nodes { isResolved comments(first:10) { nodes { author { login } body path } } } } } } }'Length of output: 44632 🏁 Script executed: #!/bin/bash
set -euo pipefail
gh run view 39064746392 --repo leynos/whitaker --json headSha,conclusion,event
gh run view 39064746392 --repo leynos/whitaker --log | grep -E 'DF12_CI_TELEMETRY|[0-9]+ passed|test-workflow-contracts' | head -n 45Length of output: 9097
I checked only this repository and this PR’s CI evidence:
The successful run does not demonstrate failed-job or fallback execution. However, those implementation behaviours do not justify a duplicate test requirement in this caller-only change. The contract tests verify the caller’s reporting condition and status input. I found no remaining code or test blocker in this assessment. GitHub reports Thanks for clarifying the test boundary. Linked revisions not inspected for this answer: ✏️ Learnings added
You are interacting with an AI system. |
Part of DF12-98
Step 2.3.1 (whitaker half) of the CI observability plan: whitaker's
ci.ymljobs print the runner telemetry record that the collector reads. whitaker usessetup-rust(so it exercisessccache-status) and already writes sccache's JSON statistics, which makes it the pilot for the sccache half of the record. The actions are leynos/shared-actions#634 and leynos/shared-actions#636, pinned at leynos/shared-actions@81374b6. The collector side is https://github.com/leynos/grafana/pull/12, and the axinite half is leynos/axinite#444.What changes
coverage-check,linux-fullandwindows-compatstartci-telemetry-startright after the checkout and reportci-telemetry-finishunderif: always(), after the sccache health check and before the disk record and cache saves.windows-compatcarries the pair too; its record saysunsupported-osand has no CPU figures.setup-rust'ssccache-statusand reads thesccache-stats.jsonthatscripts/record-sccache-effectiveness.shalready writes (the action's default file), so sccache is not asked a second time and a fallback run carries null counts, never zeros. The existing record, upload and health-check steps are untouched.tests/workflow_contracts/ci_telemetry_test.pyholds the placement (start second, after the checkout),if: always(), that only housekeeping follows the report, the status wiring, that the recorder runs before the report, and the pin.ci.ymlhas no roll-up job, so there are no exemptions.Evidence
make test-workflow-contracts: 665 passed.actionlint .github/workflows/ci.ymlis clean.make check-fmt,make markdownlintandmake spellingpass. No Rust changed.Overlapping open pull requests
None is touched. Dependabot: #486, #477, #476. User: #372. Robot-house: #352. Those that edit
ci.ymlwill need a rebase.Summary by Sourcery
Instrument all ci.yml jobs with pinned shared-actions telemetry for centralized runner and sccache observability.
New Features:
Enhancements:
Documentation:
Tests: