Simon Baslé <firstname.lastname@example.org> 443f703ef6d6829c458df9fb5606a9f33e15f6ef
Merge #697 into Europium
Simon Baslé <email@example.com> 57f8ea0169244c9ac84faaa54c199f9d83f4e4ea m
GitHub Actions Release Process (#697)
This commit changes the release process to be based on GitHub Actions.
No CI is currently running for the BOM.
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 BOM version as one of RELEASE,
MILESTONE, SNAPSHOT or BAD. Recognizes `Dysprosium` as old scheme.
- 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, without
a `v` prefix (this is the BOM)
- 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/publish.yml (version 57f8ea0169244c9ac84faaa54c199f9d83f4e4ea)
- build.gradle (version 57f8ea0169244c9ac84faaa54c199f9d83f4e4ea)
- gradle/releaser.gradle (version 57f8ea0169244c9ac84faaa54c199f9d83f4e4ea)