Automate Maven release process and version tagging in GitLab CI pipeline

This commit is contained in:
2025-08-19 10:19:26 +02:00
parent 31c2910c93
commit 5383aa4c1c
+5
View File
@@ -80,8 +80,11 @@ perform_release:
cd ${GITLAB_CLONE_DIR} cd ${GITLAB_CLONE_DIR}
git config --global user.name "${GITLAB_USERNAME}" git config --global user.name "${GITLAB_USERNAME}"
git config --global user.email "${GITLAB_USEREMAIL}" git config --global user.email "${GITLAB_USEREMAIL}"
# config auth
git remote set-url origin "https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/${CI_PROJECT_PATH}.git" git remote set-url origin "https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/${CI_PROJECT_PATH}.git"
# build versions
CURRENT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) CURRENT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
RELEASE_VERSION=$(echo $CURRENT_VERSION | sed 's/-SNAPSHOT//') RELEASE_VERSION=$(echo $CURRENT_VERSION | sed 's/-SNAPSHOT//')
MINOR_VERSION=$(echo $RELEASE_VERSION | awk -F. '{print $2}') MINOR_VERSION=$(echo $RELEASE_VERSION | awk -F. '{print $2}')
@@ -92,6 +95,7 @@ perform_release:
echo "release version: $RELEASE_VERSION" echo "release version: $RELEASE_VERSION"
echo "next version: $NEXT_VERSION" echo "next version: $NEXT_VERSION"
# process maven release ...
mvn release:clean release:prepare release:perform \ mvn release:clean release:prepare release:perform \
-B \ -B \
-DreleaseVersion=$RELEASE_VERSION \ -DreleaseVersion=$RELEASE_VERSION \
@@ -100,6 +104,7 @@ perform_release:
-DscmCommentPrefix="[ci skip] " \ -DscmCommentPrefix="[ci skip] " \
-DpreparationGoals="clean verify" -DpreparationGoals="clean verify"
# generate release
curl --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" \ curl --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" \
--data "name=v${RELEASE_VERSION}" \ --data "name=v${RELEASE_VERSION}" \
--data "tag_name=v${RELEASE_VERSION}" \ --data "tag_name=v${RELEASE_VERSION}" \