From de162cf48428557092b1f76eb0ee5e960dbcb359 Mon Sep 17 00:00:00 2001 From: Wolfram Gulde Date: Wed, 21 Jul 2021 15:54:49 +0200 Subject: [PATCH] docs(Templates): a branching script --- .../pipelines/update-version-pipeline.adoc | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/documentation/chapters/pipelines/update-version-pipeline.adoc b/documentation/chapters/pipelines/update-version-pipeline.adoc index 3e033d0..3084a3c 100644 --- a/documentation/chapters/pipelines/update-version-pipeline.adoc +++ b/documentation/chapters/pipelines/update-version-pipeline.adoc @@ -105,3 +105,96 @@ image::Release-Docker-Image-Pipeline.png[] ---- include::{sourcedir}/update-version-pipeline.gitlab-ci.yml[] ---- + +== Usage with release branches + +The `update version template` can be used to create a pipeline which supports releasing of artifacts from a release branch instead of the master branch. The https://gitlab.exxcellent.de/gilden/ci/exxcellent-increase-version-tool[exxcellent-versioning-tool] takes care of creating the next reasonable version numbers. + +If you want to realise this topic you can use the template the following way: + +.gitlab-ci.yml +[source, yaml] +---- +stages: + - release + +include: + - project: 'gilden/ci/gitlab-ci-templates' + ref: 'master' + file: + - 'release-template.gitlab-ci.yml' + +# Creates next major prerelease on master (e.g.: 2.0.0-rc.1 --> 3.0.0-rc.1) +a.major-prerelease: + extends: .release-template + variables: + BUMP_VERSION: "major prerelease" + MODE: "bump" + +# Creates next minor prerelease on master (e.g.: 2.0.0-rc.1 --> 2.1.0-rc.1) +b.minor-prerelease: + extends: .release-template + variables: + BUMP_VERSION: "minor prerelease" + MODE: "bump" + +# Creates release on release branch (e.g.: 2.0.0-rc.1 --> 2.0.0) +a.create-release: + extends: .release-template + variables: + BUMP_VERSION: "patch" + MODE: "next_version" + rules: + - if: $CI_COMMIT_REF_NAME =~ /^release/ + when: manual + - when: never + +# Creates next prerelease on release branch (e.g.: 2.0.0 --> 2.0.1-rc.1 or 2.0.0-rc.1 --> 2.0.1-rc.2) +b.create-prerelease: + extends: .release-template + variables: + BUMP_VERSION: "prerelease" + MODE: "next_version" + rules: + - if: $CI_COMMIT_REF_NAME =~ /^release/ + when: manual + - when: never + +---- + +.release.gitlab-ci.yml +[source, yaml] +---- +stages: + - set-version + - push-tag-and-version + - release + +include: + - project: 'gilden/ci/gitlab-ci-templates' + ref: 'master' + file: + - '/pipelines/update-version-pipeline.yml' + - 'push-image.yml' + +# This is optional +push-docker-image: + extends: .publish-image-kaniko + stage: release + # You only need NEED if you use a artifact from your parent pipeline to build the image + needs: + - pipeline: $PARENT_PIPELINE_ID + job: Build + - job: increase-version + - job: push-tag-and-version + rules: + - when: always + before_script: + - "[ -f ./version ] && export LATEST_VERSION=$(cat ./version)" + - export PARSED_VERSION=$(echo $LATEST_VERSION | sed -r 's/\+/_/g') # Replace + sign since this is not valid in a docker tag + - export IMAGE_NAME=$CI_REGISTRY_IMAGE:$PARSED_VERSION +---- + +More information on this topic and a more detailed instructions can be found in our https://gitlab.exxcellent.de/gilden/ci/exxcellent-branching-template[exxcellent-branching-template]. + +