Automate Maven release process and version tagging in GitLab CI pipeline
This commit is contained in:
@@ -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}" \
|
||||||
|
|||||||
Reference in New Issue
Block a user