From 93da22f83c87680777aea1af8af09aea2c7227ef Mon Sep 17 00:00:00 2001 From: Mikita Hradovich Date: Thu, 21 May 2026 21:02:57 +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 3a55f680e7e..302f8347519 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-4.x + matrix-branch: + type: string + description: 'matrix-branch: scylla-java-driver-matrix branch to use for patch validation' + default: master + jobs: release: name: Release @@ -61,6 +66,29 @@ jobs: RELEASE_SKIP_TESTS: ${{ inputs.skip-tests }} 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: