Skip to content

ci: implement automated releasing - #446

Open
karel-rehor wants to merge 7 commits into
mainfrom
ci/stage-automated-releasing
Open

karel-rehor wants to merge 7 commits into
mainfrom
ci/stage-automated-releasing

Conversation

@karel-rehor

Copy link
Copy Markdown
Contributor

Proposed Changes

Sets up automated releasing.

  1. For uploads to Maven Central replaces nexus-staging-maven-plugin with recommended central-publishing-maven-plugin
  2. Introduces a new GitHub Actions workflow maven-release.yml
    1. Verifies the action environment to ensure that all required variables are present and valid.
    2. Executes the on-release.sh script which ensures values in pom.xml files and documentation match the release version and tag.
    3. Triggers the release process, which packages and then uploads the module to Maven Central.
    4. Automatically generates and then publishes GitHub pages. This will trigger a second GitHub Action "pages build and deployment".
    5. Automatically updates CHANGELOG.md and pom.xml with the next release version. e.g. in pom.xml 1.11.0 is incremented to 1.12.0-SNAPSHOT.

Note this requires up-to-date values for action secrets (already configured in project - but not fully verified)

  • GPG_PASSPHRASE
  • GPG_PRIVATE_KEY (in tests using key for karel-rehor@users.noreply.github.com which is password protected and without expiration, so it could be used in production.)
  • SONATYPE_PASSWORD
  • SONATYPE_USERNAME
Screenshot from 2026-09-10 16-23-37

Checklist

  • CHANGELOG.md updated
  • Rebased/mergeable
  • [ ] A test has been added if appropriate N.A.
  • Tests pass
  • Commit messages are conventional
  • Sign CLA (if not already signed)

karel-rehor and others added 4 commits September 17, 2026 15:04
* ci: start maven-release.yml workflow

* chore: remove branches tag on release trigger

* chore: add here doc for generating release.properties

* chore: fix typo

* chore: update pom.xml and deploy-settings.xml for fork.

* chore: add simple volume check to workflow

* chore: add release command to model release step

* chore: reintroduce verify step to maven0release.yml workflow

* docs: start RELEASE.md

* docs: document gpg2 key generation in RELEASE.md.

* chore: reintroduce checks in scripts/on-release.sh

* docs: update temporary notes in CHANGELOG.md

* chore: fix file permissions for on-release.sh

* docs: temporary change to release date - for testing workflow.

* docs: temporary update toe README.md to test workflow.

* chore: set correct scm version an update RELEASE.md

* chore: add scm/tag value check to on-release.sh

* chore: fix dropped variable in on-release.sh

* chore: temporarily change scm tag to test workflow failure.

* chore: revert scm tag in pom.xml after workflow test proven correct.

* chore: start workflow step Prepare next cycle.

* chore: get correct TAG_NAME envar in workflow script.

* chore: set next release cycle branch

* chore: fix broken variable string in script.

* chore: temporarily add debugging checks to workflow script.

* chore: add automatic update to CHANGELOG.md in workflow.

* chore: use correct envar in workflow script.

* chore: fix formatting of next release CHANGELOG.md header

* chore: setup automated git commands for next release cycle.

* chore: setup github identity in release workflow prepare next cycle.

* chore: fix push to origin in workstream Prepare next cycle.

* chore: fix origin repository in workflow Prepare next release cycle.

* chore: setup automatic PR for new release cycle.

* chore: update permissions to allow creation of PR.

* chore: remove automatic PR merge command - requires permission changes at org and project level to work.

* chore: add site documentation update step.  Update RELEASE.md

* chore: add checks and updates to examples/pom.xml

* chore: temporarily change examples dependency version to verify workflow.

* chore: fix typo

* chore: tidy maven-release.yml

* chore: add check for remote next release branch.

* docs: updated and proofed RELEASE.md

* chore: clarify error message.

* docs: add Maven Central step to releasing instructions.

* chore: remove debug messages from on-release.sh

* chore: remove debug messages from maven-release.yml

* chore: troubleshoot document releasing step

* chore: troubleshoot site publishing issue 02

* chore: troubleshoot site publishing - set to global.

* chore: revert pubScmUrl - troubleshoot site publishing step.

* chore: troubleshoot sit publishing 03

* chore: modify pubScmUrl to troubleshoot site publishing

* chore: troubleshoot site publishing 05

* chore: revert troubleshoot changes

* chore: troubleshoot site publishing 06

* chore: troubleshoot publish site documents.

* chore: fix typo

* chore: troubleshoot site document releasing 07

* chore: troubleshoot site documentation 08

* chore: troubleshoot publish sit documentation 09

* chore: troubleshoot publish sit documentation 10

* chore: troubleshoot publish sit documentation 11

* chore: troubleshoot publish sit documentation 12

* chore: troubleshoot publish sit documentation 13

* chore: troubleshoot publish sit documentation 14

* chore: troubleshoot publish sit documentation 15

* chore: troubleshoot publish sit documentation 16

* chore: troubleshoot publish sit documentation 17

* chore: troubleshoot publish sit documentation 18

* chore: remove debug commands from Publish documentation step.

* chore: experim - try automatic PR creation.

* chore: experim - try to create new PR 02

* chore: switch off automatic PR creation, requires special permissions.

* chore: reactivate branch controls for prerelease.

* chore: add env checks for matching scm values.

* chore: fix path in script.

* chore: remove debug of script ENV.

* chore: remove commented nodes from pom.xml

* docs: update RELEASE.md to match current workflow.

* chore: remove unnecessary commands from workflow.

* chore: prepare automated releasing branch for PR to upstream.

* chore: remove experimental permissions from release workflow.

* docs: update CHANGELOG.md

* docs: lint fixes for RELEASE.md

* docs: fix linting issues in RELEASE.md

* docs: fixing lint issues in RELEASE.md 02

* docs: fix typos in RELEASE.md

* chore: fixing lint issues in on-release.sh

* chore: fix lint issues in maven-release.yml

* chore: fix linter issue in maven-release.yml

* chore: revise pom version values to match upstream HEAD.

* docs: anonymize commands in RELEASE.md

* chore: fix typo in on-releas.sh, add reminder to check RC_OR_BETA tagged releases.

* chore: fix flaws in workflow and bash scripts.

* chore: use more meaningful user.email in workflow.

* chore: use current shell when calling on-release.sh in workflow

* chore: fix RC or BETA release tag checks.

* chore: update trigger, fix snapshot credentials, verify workfow envars.

* chore: remove TODO and set RC_OR_BETA envar

* chore: fix typos add TODOs for fixes in on-release.sh

* chore: improve checks in on-release.sh

* chore: better control sequencing, better checks in workflow.

* chore: fine tune release workflow and script.

* chore: remove snapshot checks, revert workflow check for next working snapshot branch.

* chore: fine tune behavior for patch releases.

* chore: update CHANGELOG.md, fix double negative and failure message.

* chore: check gradle tag version in README.md

* docs: clarify behavior of pre-release, beta/rc releases and patch releases in RELEASE.md.

* chore: fix typo in ENVAR name and remove trim of release number.

* chore: various updates to on-release.sh

* chore: correct fix for on-release.sh

* chore: script and doc tweaks.

* chore: fix capitalization in user facing messages.

* chore: fix capitalization in messages in workflow.

* docs: add reminder about Gradle in RELEASE.md
@karel-rehor
karel-rehor requested a review from bednar September 18, 2026 12:47
@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.73%. Comparing base (8243f59) to head (efb0d75).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #446   +/-   ##
=======================================
  Coverage   88.73%   88.73%           
=======================================
  Files          21       21           
  Lines        1553     1553           
  Branches      281      281           
=======================================
  Hits         1378     1378           
  Misses         77       77           
  Partials       98       98           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant