Simon Baslé <email@example.com> d8a96d12e4894ad2feb104b28678ceea498aafbb
Merge #132 into 0.2.4
Simon Baslé <firstname.lastname@example.org> b43d7d3e63a0783aa9908a83f129040ca5286279 m
GitHub Actions Release Process: signing, artifactory, sonatype (#132)
This commit changes the release process to be based on GitHub Actions.
CI is already performed on GHA, but that workflow will now only run
for pull_request trigger.
We define helper tasks and methods in the setup.gradle file to help
interpret the version number. The trigger is pushing a commit to an
active maintenance branch.
The new workflow uses GitHub Environments to manage access to secrets,
especially in the case of milestones and releases as it introduces
signing of artifacts in these cases. It is split into 4 jobs, 3 of
which are conditional and depend on a GitHub Environment.
- Add a function to qualify a version number as one of RELEASE,
MILESTONE, SNAPSHOT or BAD
- Add a GitHub Actions oriented task, `qualifyVersionGha`, which
produces gha step output for the current project version. `versionType`
is an application of the above function and `fullVersion` is the plain
- tag releases and milestones using `git` commands in `prepare` job
- Activate the JFrog Artifactory plugin only if a password is defined
(including in subprojects)
- Add the `signing` plugin, activated only if a signing key is defined,
requiring that signing be performed if a publish task is invoked
- Add a Maven publication repository if Sonatype OSS credentials are
- Add a `mock` maven repository target and a `-PforceSigning` option
for debugging purposes
- Use the GHA RUN_NUMBER as the build id in Artifactory
- .github/workflows/ci.yml (version b43d7d3e63a0783aa9908a83f129040ca5286279)
- .github/workflows/publish.yml (version b43d7d3e63a0783aa9908a83f129040ca5286279)
- gradle/releaser.gradle (version b43d7d3e63a0783aa9908a83f129040ca5286279)
- gradle/setup.gradle (version b43d7d3e63a0783aa9908a83f129040ca5286279)