Skip to content

Reduce CI build matrix on macOS/Windows and add concurrency groups#164

Open
vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:ci-matrix-concurrency
Open

Reduce CI build matrix on macOS/Windows and add concurrency groups#164
vharseko wants to merge 2 commits into
OpenIdentityPlatform:masterfrom
vharseko:ci-matrix-concurrency

Conversation

@vharseko

@vharseko vharseko commented Jul 9, 2026

Copy link
Copy Markdown
Member

Summary

Mirrors OpenAM #1064 and #1065 for the OpenIG GitHub Actions workflows.

1. Reduce CI build matrix on macOS/Windows to min/max JDK (build.yml)

The build-maven matrix was a full cross-product of 5 JDKs × 3 OSes = 15 jobs. This reduces it to 9 jobs by only exercising the minimum and maximum supported JDKs on macOS and Windows:

  • ubuntu-latest — full Java matrix 11, 17, 21, 25, 26 (also feeds the build-docker job via the ubuntu-latest-11 artifact)
  • macos-latest11 and 26 only (via include)
  • windows-latest11 and 26 only (via include)

Because the include entries use os values that don't match the base os: [ ubuntu-latest ], GitHub Actions creates them as new combinations rather than expanding existing ones, so JDK 17/21/25 no longer run on macOS/Windows. Full coverage is retained on Linux.

2. Add concurrency groups to CI workflows

Add a top-level concurrency group keyed on ${{ github.workflow }}-${{ github.ref }} so redundant runs on the same ref collapse instead of piling up.

Workflow cancel-in-progress Behaviour
build.yml true A new push/PR build cancels the now-superseded in-flight run — the main runner-time saver.
deploy.yml false Overlapping runs queue rather than aborting an in-flight Maven Central publish.
release.yml false Never interrupts a release mid-way (release:prepare/release:perform, tag push, GitHub release).

codeql.yml is intentionally not touched here (handled separately, as in OpenAM #1065).

Mirror OpenAM #1064 and #1065 for the OpenIG workflows:

- build.yml: keep the full Java matrix (11, 17, 21, 25, 26) on
  ubuntu-latest, but only exercise the min/max JDKs (11 and 26) on
  macos-latest and windows-latest via matrix include, cutting the
  build-maven matrix from 15 jobs to 9 while keeping OS smoke
  coverage on the JDK edges.
- Add a top-level concurrency group keyed on workflow + ref to every
  workflow: build.yml cancels the superseded in-progress run
  (cancel-in-progress=true), while deploy.yml and release.yml queue
  instead (cancel-in-progress=false) so an in-flight Maven Central
  publish, tag push or GitHub release is never aborted midway.
@vharseko vharseko requested a review from maximthomas July 9, 2026 12:54
@vharseko vharseko added the ci Build, CI/CD, and GitHub Actions changes label Jul 9, 2026
Comment thread .github/workflows/deploy.yml Outdated
Co-authored-by: Maxim Thomas <maxim.thomas@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Build, CI/CD, and GitHub Actions changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants