Skip to content
Merged
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
14 changes: 9 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

name: Automated Release
on:
push:
branches: [main]
schedule:
- cron: 35 3 2 * *
workflow_dispatch:
# Serialize release runs. Each run's release-notes lower bound is the latest tag
# at the time its prepare job runs; two merges in quick succession would both
# at the time its prepare job runs; two runs in quick succession would both
# read that bound before either run has tagged, producing overlapping notes.
# Queueing (no cancel) lets the earlier release finish and create its tag first,
# so the next run's notes start from that tag and carry only its own commits.
Expand All @@ -19,7 +19,7 @@
name: Prepare Release
runs-on: ubuntu-latest
outputs:
needed: ${{ steps.gate.outputs.needed }}
needed: ${{ steps.gate.outputs.needed == 'true' && steps.quota.outputs.available == 'true' }}
version: ${{ steps.version.outputs.version }}
previous: ${{ steps.gate.outputs.last }}
steps:
Expand All @@ -32,9 +32,13 @@
uses: metio/ci/needs-release@4e1bc9f3d854998e07b63b20a49dd60e652c0d32 # 2026.10.30204559
with:
paths: src/main/java pom.xml
- id: quota
name: Check Maven Central quota
if: steps.gate.outputs.needed == 'true'
uses: metio/ci/central-quota@4e1bc9f3d854998e07b63b20a49dd60e652c0d32 # 2026.10.30204559
- id: version
name: Compute the next version
if: steps.gate.outputs.needed == 'true'
if: steps.gate.outputs.needed == 'true' && steps.quota.outputs.available == 'true'
uses: metio/ci/calver@4e1bc9f3d854998e07b63b20a49dd60e652c0d32 # 2026.10.30204559
release:
needs: [prepare]
Expand All @@ -50,7 +54,7 @@
fetch-depth: 0
- id: timestamp
name: Build Timestamp
run: echo "iso8601=$(date --utc --iso-8601=seconds)" >> $GITHUB_OUTPUT

Check warning on line 57 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2086:info:1:52: Double quote to prevent globbing and word splitting [shellcheck] Raw Output: i:.github/workflows/release.yml:57:65: shellcheck reported issue in this script: SC2086:info:1:52: Double quote to prevent globbing and word splitting [shellcheck]
- id: notes
name: Generate Release Notes
uses: metio/ci/release-notes@4e1bc9f3d854998e07b63b20a49dd60e652c0d32 # 2026.10.30204559
Expand All @@ -61,8 +65,8 @@
env:
VERSION: ${{ needs.prepare.outputs.version }}
NOTES: ${{ steps.notes.outputs.file }}
run: |

Check failure on line 68 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC1072:error:7:1: Here document was not correctly terminated. Fix any mentioned problems and try again [shellcheck] Raw Output: e:.github/workflows/release.yml:68:9: shellcheck reported issue in this script: SC1072:error:7:1: Here document was not correctly terminated. Fix any mentioned problems and try again [shellcheck]
cat >> "$NOTES" <<EOF

Check failure on line 69 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC1044:error:1:19: Couldn't find end token `EOF' in the here document [shellcheck] Raw Output: e:.github/workflows/release.yml:69:29: shellcheck reported issue in this script: SC1044:error:1:19: Couldn't find end token `EOF' in the here document [shellcheck]

Check failure on line 69 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC1073:error:1:17: Couldn't parse this here document. Fix to allow more checks [shellcheck] Raw Output: e:.github/workflows/release.yml:69:27: shellcheck reported issue in this script: SC1073:error:1:17: Couldn't parse this here document. Fix to allow more checks [shellcheck]

Check warning on line 69 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC1009:info:1:1: The mentioned syntax error was in this simple command [shellcheck] Raw Output: i:.github/workflows/release.yml:69:11: shellcheck reported issue in this script: SC1009:info:1:1: The mentioned syntax error was in this simple command [shellcheck]

## Usage

Expand All @@ -89,7 +93,7 @@
run: mvn --batch-mode --define newVersion=${{ needs.prepare.outputs.version }} --define generateBackupPoms=false versions:set
- id: deploy-maven
name: Deploy Maven Artifact
run: >

Check failure on line 96 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / github-actions

[actionlint] reported by reviewdog 🐶 property "sha" is not defined in object type {checkout: {conclusion: string; outcome: string; outputs: {string => string}}; gpg: {conclusion: string; outcome: string; outputs: {string => string}}; notes: {conclusion: string; outcome: string; outputs: {string => string}}; pom-version: {conclusion: string; outcome: string; outputs: {string => string}}; setup-java: {conclusion: string; outcome: string; outputs: {string => string}}; timestamp: {conclusion: string; outcome: string; outputs: {string => string}}} [expression] Raw Output: e:.github/workflows/release.yml:96:79: property "sha" is not defined in object type {checkout: {conclusion: string; outcome: string; outputs: {string => string}}; gpg: {conclusion: string; outcome: string; outputs: {string => string}}; notes: {conclusion: string; outcome: string; outputs: {string => string}}; pom-version: {conclusion: string; outcome: string; outputs: {string => string}}; setup-java: {conclusion: string; outcome: string; outputs: {string => string}}; timestamp: {conclusion: string; outcome: string; outputs: {string => string}}} [expression]
mvn
--batch-mode
--activate-profiles release
Expand Down
Loading