From e5cba692a2836e43bf42ae38caaeb1e8fcf45134 Mon Sep 17 00:00:00 2001 From: Trent Blackburn Date: Fri, 29 May 2026 03:50:06 -0400 Subject: [PATCH] ci: queue integration tests so they don't race on the shared Plex server 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. --- .github/workflows/CI.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index e8a7ce7..9117232 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -161,6 +161,13 @@ jobs: name: Integration Tests (${{ matrix.os }}) runs-on: ${{ matrix.os }} timeout-minutes: 90 + # Integration tests hit a shared, live Plex server, so they must not run concurrently. + # A constant group (no matrix.os, no ref) serializes every integration job in this repo - + # including the ubuntu and windows matrix legs of a single run - and cancel-in-progress is + # false so a running suite is never interrupted; newer queued runs simply wait. + concurrency: + group: ${{ github.workflow }}-integration + cancel-in-progress: false # Only run for pushes to main or PRs from the same repo (has access to secrets) if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository needs: [unit-tests, unit-tests-ps51]