From 06adcff04244c4f7fa50f1ff4e556823202f2471 Mon Sep 17 00:00:00 2001 From: Valera V Harseko Date: Thu, 9 Jul 2026 16:23:03 +0300 Subject: [PATCH] CI: trim build matrix on macOS/Windows and add workflow concurrency - build.yml: run the full JDK matrix (17, 21, 25, 26) only on Ubuntu; macOS and Windows now smoke-test just the min (17) and max (26) JDKs, cutting the matrix from 12 jobs to 8. - Add concurrency groups keyed on workflow+ref: cancel-in-progress for build.yml, and cancel-in-progress: false for release.yml and deploy.yml so publishing/release runs queue instead of being interrupted. - Add CDDL headers to deploy.yml and release.yml. Analogous to OpenICF #98. --- .github/workflows/build.yml | 17 ++++++++++++++++- .github/workflows/deploy.yml | 16 ++++++++++++++++ .github/workflows/release.yml | 16 ++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8cd52449..ef3c73532 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,13 +17,28 @@ on: push: branches: [ 'sustaining/6.3.x','master', 'issues/**', 'features/**' ] pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: build-maven: runs-on: ${{ matrix.os }} strategy: matrix: + os: [ 'ubuntu-latest' ] java: [ '17', '21', '25', '26' ] - os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] + # macOS and Windows runners are the slowest and scarcest in CI, so only + # smoke-test the minimum (17) and maximum (26) supported JDKs on them. + # Ubuntu keeps the full JDK matrix above. + include: + - os: 'macos-latest' + java: '17' + - os: 'macos-latest' + java: '26' + - os: 'windows-latest' + java: '17' + - os: 'windows-latest' + java: '26' fail-fast: false steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 899829aeb..bddaecbf0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,3 +1,16 @@ +# The contents of this file are subject to the terms of the Common Development and +# Distribution License (the License). You may not use this file except in compliance with the +# License. +# +# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the +# specific language governing permission and limitations under the License. +# +# When distributing Covered Software, include this CDDL Header Notice in each file and include +# the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL +# Header, with the fields enclosed by brackets [] replaced by your own identifying +# information: "Portions copyright [year] [name of copyright owner]". +# +# Copyright 2024-2026 3A Systems, LLC. name: Package/Deploy on: @@ -6,6 +19,9 @@ on: branches: [ 'sustaining/6.3.x','master' ] workflows: ["Build","Release"] types: [completed] +concurrency: + group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch }} + cancel-in-progress: false jobs: deploy-maven: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 77b061bca..a938cf631 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,3 +1,16 @@ +# The contents of this file are subject to the terms of the Common Development and +# Distribution License (the License). You may not use this file except in compliance with the +# License. +# +# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the +# specific language governing permission and limitations under the License. +# +# When distributing Covered Software, include this CDDL Header Notice in each file and include +# the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL +# Header, with the fields enclosed by brackets [] replaced by your own identifying +# information: "Portions copyright [year] [name of copyright owner]". +# +# Copyright 2024-2026 3A Systems, LLC. name: Release on: @@ -11,6 +24,9 @@ on: description: "Default version to use for new local working copy." required: true default: "X.Y.Z-SNAPSHOT" +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false jobs: release-maven: runs-on: 'ubuntu-latest'