Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dynamic maven versioning to drive releases using git tags #25

Draft
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

skofgar
Copy link
Contributor

@skofgar skofgar commented Dec 15, 2020

Hey @ericcwlaw

CI Friendly Versioning, based on git tags

I'm proposing to change:

<version>1.2.3</version>

to

<version>${revision}</version>
<properties>
   <revision>1.2-SNAPSHOT</revision>
   ...
</properties>

This will change the behaviour of the software to build jar files as x.x-SNAPSHOT by default, but when you tag the software (or use mvn package -Drevision=1.2.3), then it will create a release. It has the advantage that the git tag and a specific version are tied to each other and you clearly know what are "releases" and what are snapshots.

So you won't actually have to do any manual releases, since the CI pipeline, in my example GitLab, can do these releases for you.

This is based on Maven's "CI Friendly Versioning"

Releasing Maven Artifacts to GitLab Registry

Furthermore I updated the GitLab CI pipeline accompanying these changes and releasing the resulting JAR's into the project's GitLab Maven Registry (in my fork). In the future a release to maven-central is desired, but it is more involved. To not make this pull request/review more complex it is not part of this.

Parent Pom

Additionally I added a parent-pom under system/parent/ to drive deployment configuration.

Next steps

The suggested changes could potentially break some of your builds, depending how you include the jars (version numbers etc). Hence we should discuss and verify that these changes are desired and move the project in the direction you want it to go.

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.

None yet

1 participant