diff --git a/.releaserc.yml b/.releaserc.yml index ef6b1316a6e772b0ce31d20f26459b4270cbd12b..6644574e55fc8e42683e05e3f86984f44a0a1666 100644 --- a/.releaserc.yml +++ b/.releaserc.yml @@ -6,7 +6,8 @@ plugins: [ [ "@semantic-release/exec", { - "prepareCmd": "./bumpversion.sh \"${lastRelease.version}\" \"${nextRelease.version}\" \"${nextRelease.type}\"" + "prepareCmd": "./bumpversion.sh \"${lastRelease.version}\" \"${nextRelease.version}\" \"${nextRelease.type}\"", + "successCmd": "./post-release.sh \"${nextRelease.version}\"" } ], [ diff --git a/post-release.sh b/post-release.sh new file mode 100755 index 0000000000000000000000000000000000000000..6d197865fe21a418897824f758d127af2b59ef98 --- /dev/null +++ b/post-release.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +function log_info() { + >&2 echo -e "[\\e[1;94mINFO\\e[0m] $*" +} + +function log_warn() { + >&2 echo -e "[\\e[1;93mWARN\\e[0m] $*" +} + +function log_error() { + >&2 echo -e "[\\e[1;91mERROR\\e[0m] $*" +} + +# check number of arguments +if [[ "$#" -lt 1 ]]; then + log_error "Missing arguments" + log_error "Usage: $0 <next version>" + exit 1 +fi + +nextVer=$1 +minorVer=${nextVer%\.[0-9]*} +majorVer=${nextVer%\.[0-9]*\.[0-9]*} + +log_info "Creating minor version tag alias \\e[33;1m${minorVer}\\e[0m from $nextVer..." +git tag --force -a "$minorVer" "$nextVer" -m "Minor version alias (targets $nextVer)" + +log_info "Creating major version tag alias \\e[33;1m${majorVer}\\e[0m from $nextVer..." +git tag --force -a "$majorVer" "$nextVer" -m "Major version alias (targets $nextVer)" + +log_info "Pushing tags..." +git_base_url=$(echo "$CI_REPOSITORY_URL" | cut -d\@ -f2) +git_auth_url="https://token:${GITLAB_TOKEN}@${git_base_url}" +git push --tags --force "$git_auth_url"