Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
name: CI

# Trigger policy: PR runs are the gate (incl. the version-hygiene merge guard
# and the shim matrix); the post-merge main run verifies what actually landed
# ("green main" for releases). Bare branch pushes trigger NOTHING — want CI
# on a branch? Open the PR (draft if not ready).
on:
push:
branches: ["**"]
branches: [main]
pull_request:
branches: ["**"]

# Rapid PR updates cancel the superseded in-progress run for the same ref.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
# WP-20: global checks run ONCE — they are version-independent (the
# no-spark-imports gate covers every module in the reactor; the version-
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,15 +123,17 @@ jobs:
# Tests are NOT re-run here: releases cut only from green main (CI
# already ran the full matrix on this commit). The version stamp is
# workspace-only — main's dev-marker version is never committed.
# Passphrase flows via MAVEN_GPG_PASSPHRASE (the non-deprecated channel;
# -Dgpg.passphrase leaks into process args).
- name: Stamp release version and deploy to Maven Central
run: |
mvn -B -q versions:set -DnewVersion="$VERSION" -DgenerateBackupPoms=false
mvn -B -Prelease clean deploy -DskipTests -Dgpg.passphrase="$GPG_PASSPHRASE"
mvn -B -Prelease clean deploy -DskipTests
env:
VERSION: ${{ needs.guard.outputs.version }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_PASSWORD: ${{ secrets.CENTRAL_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}

# The wheel must embed the SAME jars this run published to Central.
- name: Upload bundle jars for the PyPI job
Expand Down Expand Up @@ -180,7 +182,9 @@ jobs:
uses: actions/download-artifact@v4
with:
name: interceptor-bundles
path: .
# upload-artifact strips the common ancestor (catalyst-interceptor/)
# from the zip; extracting here restores the bundle_jars.py glob paths
path: catalyst-interceptor

- name: Rebuild bundle jars from the tagged source (pypi-only recovery)
if: github.event_name == 'workflow_dispatch' && inputs.jobs == 'pypi-only'
Expand Down
Loading