ci: queue integration tests so they don't race on the shared Plex server#66
Conversation
The integration-tests job hits a live, shared Plex server. Running its ubuntu and windows matrix legs at once (or across overlapping runs) causes state races - e.g. collection ItemCount assertions flaking when two jobs mutate the same server simultaneously (seen on PR #64). Add a job-level concurrency group to integration-tests with a constant group (not keyed by matrix.os or ref) so every integration job in the repo serializes, and cancel-in-progress: false so an in-progress suite is never cancelled - newer runs queue and wait. Scoped to this job only; unit tests and lint are deterministic and keep running in parallel.
|
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 (1)
📝 WalkthroughWalkthroughThis pull request adds a concurrency policy to the GitHub Actions ChangesIntegration Test Concurrency Policy
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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.
Pull request overview
Adds a job-level concurrency group to the integration-tests job in .github/workflows/CI.yaml so that integration runs against the shared live Plex server are serialized rather than racing in parallel across matrix legs and overlapping workflow runs.
Changes:
- Add
concurrencyblock tointegration-testswith a constant group (${{ github.workflow }}-integration) not keyed onmatrix.osor ref. - Set
cancel-in-progress: falseso an in-flight integration suite is never interrupted; newer runs queue.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@CodeRabbit review |
✅ Actions performedReview triggered.
|
…l reference (#67) PSScriptAnalyzer 1.25.0 intermittently throws "Object reference not set to an instance of an object." from inside the analyzer engine, failing the Lint task on otherwise-green builds. It has struck both Linux (#65) and Windows (#66) CI runners at random, so it is not platform-specific and a non-Windows disable would not cover it. Retry the analysis up to three times on that specific null reference, while letting any genuine analysis error surface immediately. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
concurrencygroup to theintegration-testsjob so it never runs concurrently against the shared, live Plex server.group: ${{ github.workflow }}-integration(constant — not keyed bymatrix.osor ref) → serializes the ubuntu + windows matrix legs of a run and integration across overlapping runs/PRs.cancel-in-progress: false→ queue, never cancel an in-progress suite.Why
PR #64's windows integration leg flaked on
CollectionItemCountassertions while the ubuntu leg passed on the same commit — two jobs mutating the same Plex server at once. Queuing eliminates that race.Notes
integration-testsjob, so this does not belong in the template.CI.yaml, as does open PR fix: enforce PSScriptAnalyzer in the build and unify the lint ruleset #64 (different section) — whichever merges second takes a trivial rebase.Test Plan
Summary by CodeRabbit