ci: schedule live skills integration tests#1902
Conversation
Run make live-skills-test on a daily cron (plus workflow_dispatch). The live tests exercise the real npx skills CLI, whose dominant failure mode is upstream drift — a new release breaking output or flags without any commit here — so a schedule fits and a per-PR gate would only import live-network flakiness into unrelated changes. On failure the job keeps one open tracking issue current instead of failing silently: a scheduled job nobody hears about rots as quietly as no job at all. The workflow contract (schedule/dispatch-only triggers, pinned actions, no secrets) is pinned by scripts/live-skills-workflow.test.sh wired into make script-test.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughAdds a daily and manually triggered GitHub Actions workflow for live-skills integration tests, failure issue tracking, and a Bash validation script wired into ChangesLive skills integration
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
scripts/live-skills-workflow.test.sh (1)
14-27: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueImprove error visibility for silent assertions.
Because the script uses
set -e, these baregrepcommands act as silent assertions. If any check fails, the script will abort immediately with no output, making it difficult to debug which specific requirement was violated whenmake script-testfails.Consider enabling
set -xbefore these checks, or wrapping them in a helper function that prints a descriptive error message.🛠️ Proposed fix (enable execution tracing)
fi +set -x + grep -Eq '^[[:space:]]+workflow_dispatch:[[:space:]]*$' "$workflow" grep -Eq '^[[:space:]]+schedule:[[:space:]]*$' "$workflow" if grep -Eq '^[[:space:]]*(push|pull_request|pull_request_target|merge_group):|^[[:space:]]*on:[[:space:]]*\[[^]]*(push|pull_request|pull_request_target|merge_group)' "$workflow"; then echo "live skills workflow must only run on schedule or workflow_dispatch" >&2 + set +x exit 1 fi grep -Fq "permissions:" "$workflow" grep -Fq "contents: read" "$workflow" grep -Fq "persist-credentials: false" "$workflow" grep -Fq "timeout-minutes: 15" "$workflow" grep -Fq "runs-on: ubuntu-latest" "$workflow" grep -Fq "node-version: '22'" "$workflow" grep -Fq "make live-skills-test" "$workflow" + +set +x🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/live-skills-workflow.test.sh` around lines 14 - 27, Update the assertion checks in the live-skills workflow test script so failures identify the specific requirement instead of exiting silently under set -e. Add descriptive failure output for each grep assertion, either by wrapping the checks in a helper or enabling tracing as suggested, while preserving all existing validation patterns and success behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/live-skills.yml:
- Around line 53-55: Fix the YAML block scalar in the workflow step containing
the --body message by indenting the continuation text lines to the same base
level required by the surrounding run: | block. Preserve the rendered blank line
and markdown content while ensuring every line remains valid YAML.
---
Nitpick comments:
In `@scripts/live-skills-workflow.test.sh`:
- Around line 14-27: Update the assertion checks in the live-skills workflow
test script so failures identify the specific requirement instead of exiting
silently under set -e. Add descriptive failure output for each grep assertion,
either by wrapping the checks in a helper or enabling tracing as suggested,
while preserving all existing validation patterns and success behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 543b7f1e-ccf1-4600-a5fa-f761d1a57f73
📒 Files selected for processing (3)
.github/workflows/live-skills.ymlMakefilescripts/live-skills-workflow.test.sh
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1902 +/- ##
==========================================
+ Coverage 74.72% 74.98% +0.26%
==========================================
Files 886 896 +10
Lines 92621 94403 +1782
==========================================
+ Hits 69208 70789 +1581
- Misses 18052 18198 +146
- Partials 5361 5416 +55 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🚀 PR Preview Install Guide🧰 CLI updatenpm i -g https://pkg.pr.new/larksuite/cli/@larksuite/cli@7ad9ffc5d88031871e724326adca0b10413b53dd🧩 Skill updatenpx skills add larksuite/cli#ci/schedule-live-skills-tests -y -g |
The failure-notification step built the tracking-issue body as a multi-line double-quoted string whose continuation lines sat at column 1, which broke the run: block scalar. GitHub Actions could not load the workflow (YAML parse error at the un-indented line), so the scheduled drift monitor and failure notifications never ran. Build the body with a heredoc into a variable so every line stays inside the block scalar. Add a real YAML parse to the contract test so grep-only assertions can no longer pass a structurally invalid workflow.
Summary
PR #1883 made the two live skills integration tests strictly opt-in (
make live-skills-test), which removed their accidental execution on developer machines — but also left them with no automated runs at all. Their dominant failure mode is upstream drift:npx -y skillsalways resolves the latest skills CLI release, so the integration can break without any commit in this repo. This PR restores the scheduled workflow (daily instead of weekly) and adds a failure-notification step, so breakage surfaces as an open issue instead of rotting silently.Changes
.github/workflows/live-skills.yml: daily cron (0 3 * * *) plusworkflow_dispatch, runningmake live-skills-testghwith the workflowgithub.token(issues: write)scripts/live-skills-workflow.test.sh(workflow contract: schedule/dispatch-only triggers, SHA-pinned actions, no secrets) and wire it intomake script-testTest Plan
bash scripts/live-skills-workflow.test.shpassed on this branchmake live-skills-testitself verified by real opt-in runs on test: isolate unit tests from user state #1883 (2/2 tests passed against the live skills CLI, isolated home, no leakage)gh issuecommands (will validate end-to-end viaworkflow_dispatchafter merge)Related Issues
N/A (follow-up to #1883 review feedback; depends on #1883 — merge after it so
make live-skills-testexists on main)Summary by CodeRabbit
Chores
Tests
script-testtarget to run a new workflow validation script.secrets.*usage).