diff --git a/.circleci/config.yml b/.circleci/config.yml index 40089eb..f890c28 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,12 +1,12 @@ version: 2.1 setup: true orbs: - qqq-orb: kingsrook/qqq-orb@0.7.16 + qqq-orb: kingsrook/qqq-orb@0.8 workflows: setup: jobs: - qqq-orb/generate_pipeline: - orb_version: 0.7.16 + orb_version: '0.8' filters: branches: ignore: automation/qbit-rc-pending diff --git a/.gitea/workflows/qrun-release.yaml b/.gitea/workflows/qrun-release.yaml new file mode 100644 index 0000000..cb745b2 --- /dev/null +++ b/.gitea/workflows/qrun-release.yaml @@ -0,0 +1,24 @@ +# 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: + uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/java-maven.yaml@qrun-release-v1 + with: + runner: linux-small + browsers: true + browser-runner: browser-build + 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 diff --git a/.gitea/workflows/release-rc.yaml b/.gitea/workflows/release-rc.yaml new file mode 100644 index 0000000..12ec9fc --- /dev/null +++ b/.gitea/workflows/release-rc.yaml @@ -0,0 +1,72 @@ +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 }} diff --git a/.qqq-ci.yml b/.qqq-ci.yml index 9431668..6777ede 100644 --- a/.qqq-ci.yml +++ b/.qqq-ci.yml @@ -1,5 +1,5 @@ profile: qbit -orb_version: 0.7.16 +orb_version: '0.8' default_branch: develop java_version: '21' browsers: true @@ -13,3 +13,4 @@ publish: release_candidate: true release: true asciidoc: false +release_completion: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 527013e..75ca16f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ and [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + +- Reconciled legacy release-branch history with the current Gitea CI while retaining the develop + SNAPSHOT revision, so normal RC cuts can merge cleanly. + +### Fixed + +- SQL changelog headers: explanatory "-- Include it from the host..." comments were parsed as a + licensed Liquibase `include` directive. Replaced with neutral wording; changeset bodies and + schema are unchanged. + ## [0.1.0] - Unreleased ### Added diff --git a/pom.xml b/pom.xml index 9430a33..d9409c4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ - 0.1.0-RC.1 + 0.1.0-SNAPSHOT 21 21 0.8.15 diff --git a/src/main/resources/db/liquibase/qbit-cluster/cluster.changelog.sql b/src/main/resources/db/liquibase/qbit-cluster/cluster.changelog.sql index f6203f7..1e5ba35 100644 --- a/src/main/resources/db/liquibase/qbit-cluster/cluster.changelog.sql +++ b/src/main/resources/db/liquibase/qbit-cluster/cluster.changelog.sql @@ -3,7 +3,7 @@ -- https://www.apache.org/licenses/LICENSE-2.0 -- qbit-cluster schema (QRun-IO/qqq docs/specs/2026-10-15-cluster-ha-design.md section E). --- Include it from the host's master changelog, then the defaults: +-- Load this file from the host's master changelog, then the defaults: -- -- - include: { file: db/liquibase/qbit-cluster/cluster.changelog.sql } -- - include: { file: db/liquibase/qbit-cluster/cluster-defaults.changelog.sql }