From 87503d839812ca877974920240e0c76eda700c7b Mon Sep 17 00:00:00 2001 From: Mikita Hradovich Date: Thu, 21 May 2026 21:02:14 +0200 Subject: [PATCH] ci: validate matrix patches before release Add a 'Validate matrix patches' step between 'Prepare release' and 'Perform release' in the release workflow. After mvn release:prepare creates the tag locally (but before anything is published to Maven Central or pushed to GitHub), clone scylla-java-driver-matrix and run --patch-only mode to verify all scylla driver patches apply cleanly against the about-to-be-released source. If patches fail the release workflow aborts immediately, giving the releaser a clear signal to update the matrix patches first. Also adds a matrix-branch input (default: master) so releasers can point to a non-merged matrix branch during validation if needed. Closes: scylladb/scylla-java-driver-matrix#145 --- .github/workflows/release.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c1e512795b..113d0be2f10 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,6 +18,11 @@ on: description: 'target-tag: tag or branch name to release. Use to re-release tagged releases' default: scylla-3.x + matrix-branch: + type: string + description: 'matrix-branch: scylla-java-driver-matrix branch to use for patch validation' + default: master + jobs: release: name: Release @@ -62,6 +67,29 @@ jobs: run: | make release-prepare + - name: Validate matrix patches + run: | + RELEASE_TAG=$(grep '^scm.tag=' release.properties | cut -d= -f2) + echo "Release tag: ${RELEASE_TAG}" + + if [[ -z "${RELEASE_TAG}" ]]; then + echo "::error::Could not determine release tag from release.properties" + exit 1 + fi + + git clone --depth 1 --branch "${{ inputs.matrix-branch }}" \ + https://github.com/scylladb/scylla-java-driver-matrix.git /tmp/matrix + + pip install --quiet PyYAML packaging jinja2 + + echo "=== Validating scylla driver patches for ${RELEASE_TAG} ===" + python3 /tmp/matrix/main.py . \ + --versions "${RELEASE_TAG}" \ + --driver-type scylla \ + --patch-only + + echo "Matrix patches apply cleanly to ${RELEASE_TAG}" + - name: Perform release if: inputs.dry-run == false env: