Skip to content

ci: parallelize Go module tests and Scripts-and-Compose into matrix jobs - #1604

Merged
Xore merged 1 commit into
mainfrom
ci-parallelize-quality-checks
Aug 17, 2026
Merged

ci: parallelize Go module tests and Scripts-and-Compose into matrix jobs#1604
Xore merged 1 commit into
mainfrom
ci-parallelize-quality-checks

Conversation

@Xore

@Xore Xore commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Both the go and scripts-and-compose Quality workflow jobs ran a long sequence of fully independent checks serially on one runner. This splits each into a matrix job (one runner per entry, fail-fast: false) plus a thin aggregator job that keeps the original check name for anything watching it (branch protection, status checks):

  • gogo-fmt (unchanged whole-repo gofmt check) + go-test (one matrix entry per Go module, 22 total) + go-modules-complete (aggregates both under the original "Go formatting and tests" name).
  • scripts-and-compose → one matrix entry per check (34 total: Python/shell/Go script tests, real-Keycloak integration tests, YARA/compose validation), all sharing one setup preamble (checkout + python + go), plus scripts-and-compose-complete aggregating under the original "Scripts and Compose" name.

No check's actual command changed — only how many runners execute them concurrently. Every check's own explanatory comment moved with it unchanged; verified programmatically (line-for-line content match against the original file) before splicing rather than hand-retyped, given the size.

This PR's own CI run is the first real test of the new structure.

Both jobs ran a long sequence of fully independent checks in a single
runner, serially. Split each into a matrix (fail-fast: false, one
runner per entry) plus a thin aggregator job that preserves the
original check name for anything watching it:

- go: was a shell loop over every go.mod running `go test ./...` one
  module at a time (22 modules). Now go-fmt (whole-repo gofmt check,
  unchanged) + go-test (one matrix entry per module) + go-modules-
  complete (aggregates both under the original "Go formatting and
  tests" name).
- scripts-and-compose: 34 independent named steps (Python/shell/Go
  script tests, real-Keycloak integration tests, YARA/compose
  validation) run one after another in one job. Now one matrix entry
  per check, all sharing one setup preamble (checkout + python + go),
  plus scripts-and-compose-complete aggregating under "Scripts and
  Compose". Every check's own explanatory comment moved with it
  unchanged -- verified programmatically against the original file
  (line-for-line content match) before splicing, not hand-retyped.

No check's actual command changed, only how many runners execute them
concurrently.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@Xore
Xore merged commit 1dc378b into main Aug 17, 2026
88 checks passed
@Xore
Xore deleted the ci-parallelize-quality-checks branch August 17, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant