ci: use shared ci-workflows Maven workflow #32

Merged
james.maes merged 3 commits from ci/ci-workflows into develop 2026-11-05 23:05:46 +00:00
4 changed files with 7 additions and 151 deletions

No files matched your search

-55
View File
@@ -1,55 +0,0 @@
schema: 1
scoped_delegation: true
verification:
push:
branches: [main, master, dev, rc, "release/**", "hotfix/**", "qualification/**"]
components:
library:
directory: .
platforms: [linux-amd64]
toolchains:
java: "21"
build:
tool: maven
# Shared verification uses the release version property so unchanged tested outputs can be reused.
commands:
- ["--batch-mode", "--update-snapshots", "-T4", "--no-transfer-progress", "verify"]
- ["--batch-mode", "--no-transfer-progress", "org.codehaus.mojo:flatten-maven-plugin:1.7.3:flatten", "-Dflatten.mode=resolveCiFriendliesOnly", "-DupdatePomFile=true"]
reports:
junit: "**/target/surefire-reports/*.xml"
artifacts:
packages:
format: maven
# Retain the generated consumer POM alongside the tested JAR; both are required for publication.
paths: [".flattened-pom.xml", "target/*.jar"]
release:
channels:
snapshot:
trigger:
push_branches: [develop]
versioning: maven-snapshot
effective_version:
rule: develop-next-minor
central_completion: true
version_write_back: {}
# Release candidates: a push to release/X.Y derives X.Y.0-RC.n with the existing rc-from-branch rule (the first RC of a branch that declares
# X.Y.Z-SNAPSHOT is RC.1); maven-release refuses a SNAPSHOT effective version. Published to the same destination as the snapshot, with the same
# Central completion and source write-back policy.
release-candidate:
trigger:
push_branches: ["release/*"]
versioning: maven-release
effective_version:
rule: rc-from-branch
central_completion: true
version_write_back: {}
publications:
qbit-sftp-packages:
component: library
artifact: packages
destination: qrun-maven
channels: [snapshot, release-candidate]
+7
View File
@@ -0,0 +1,7 @@
name: build
on:
push:
jobs:
maven:
uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/maven.yaml@main
secrets: inherit
-24
View File
@@ -1,24 +0,0 @@
# Standard QRun release caller (v2, thin contract): every push and manual dispatch delegates to the protected qrun-release-v1 channel. Do not edit per repository.
name: qrun-release
on:
push: {}
workflow_dispatch: {}
permissions:
contents: read
actions: read
jobs:
release:
# Develop and release candidates use the repository-owned shared pipeline configuration.
if: ${{ github.ref != 'refs/heads/develop' && !startsWith(github.ref, 'refs/heads/release/') }}
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/java-maven.yaml@qrun-release-v1
with:
runner: linux-small
postpublish:
if: ${{ needs.release.outputs.capture == 'true' }}
needs: release
permissions:
contents: write
actions: write
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qrun-source-version.yaml@qrun-release-v1
with:
runner: linux-small
-72
View File
@@ -1,72 +0,0 @@
name: Release candidate
'on':
workflow_dispatch:
inputs:
dry_run:
description: Plan a cut without changing release state
type: boolean
default: false
finalize:
description: Retry finalization of an existing cut; do not cut another RC
type: boolean
default: false
recover:
description: Recover the same published RC after a deployment timeout; never
reupload
type: boolean
default: false
circle_build:
description: Original release run id (recovery only)
type: string
default: ''
merge_sha:
description: Existing cut merge_sha (finalize retry only)
type: string
default: ''
bump_sha:
description: Existing cut bump_sha (finalize retry only)
type: string
default: ''
branch:
description: Existing cut branch (finalize retry only)
type: string
default: ''
version:
description: Existing cut version (finalize retry only)
type: string
default: ''
pull_request:
types:
- closed
branches:
- develop
permissions:
contents: read
jobs:
release-rc:
# The old qbit-rc-published repository_dispatch is replaced by the already-proven workflow_dispatch
# completion: the publisher's own ActionsWRITE job dispatches this workflow with finalize=true plus
# merge_sha/bump_sha/branch/version (same inputs as the manual finalize retry).
permissions:
contents: write
actions: read
pull-requests: write
if: github.event_name == 'workflow_dispatch'
|| (github.event_name == 'pull_request' && github.event.pull_request.merged
== true && github.event.pull_request.base.ref == 'develop' && contains(github.event.pull_request.labels.*.name,
'release:rc'))
uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qbit-release-rc.yaml@qrun-release-v1
with:
dry_run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run || false
}}
finalize: ${{ github.event_name == 'workflow_dispatch' && inputs.finalize }}
recover: ${{ github.event_name == 'workflow_dispatch' && inputs.recover || false
}}
circle_build: ${{ github.event_name == 'workflow_dispatch' && inputs.circle_build
|| '' }}
merge_sha: ${{ inputs.merge_sha || '' }}
bump_sha: ${{ inputs.bump_sha || '' }}
branch: ${{ inputs.branch || '' }}
version: ${{ inputs.version || '' }}
secrets:
QRUN_TAG_SIGNING_KEY: ${{ secrets.QRUN_TAG_SIGNING_KEY }}