diff options
Diffstat (limited to '')
-rwxr-xr-x | .travis/tagger.sh | 42 |
1 files changed, 10 insertions, 32 deletions
diff --git a/.travis/tagger.sh b/.travis/tagger.sh index b1907c347..e72c5721c 100755 --- a/.travis/tagger.sh +++ b/.travis/tagger.sh @@ -15,6 +15,8 @@ # - GITHUB_TOKEN variable set with GitHub token. Access level: repo.public_repo # - git-semver python package (pip install git-semver) +# exported variables are needed by releaser.sh + set -e if [ ! -f .gitignore ]; then @@ -22,33 +24,19 @@ if [ ! -f .gitignore ]; then exit 1 fi -# Embed new version in files which need it. -# This wouldn't be needed if we could use `git tag` everywhere. -function embed_version { - VERSION="$1" - MAJOR=$(echo "$GIT_TAG" | cut -d . -f 1 | cut -d v -f 2) - MINOR=$(echo "$GIT_TAG" | cut -d . -f 2) - PATCH=$(echo "$GIT_TAG" | cut -d . -f 3 | cut -d '-' -f 1) - sed -i "s/\\[VERSION_MAJOR\\], \\[.*\\]/\\[VERSION_MAJOR\\], \\[$MAJOR\\]/" configure.ac - sed -i "s/\\[VERSION_MINOR\\], \\[.*\\]/\\[VERSION_MINOR\\], \\[$MINOR\\]/" configure.ac - sed -i "s/\\[VERSION_PATCH\\], \\[.*\\]/\\[VERSION_PATCH\\], \\[$PATCH\\]/" configure.ac - git add configure.ac -} - # Figure out what will be new release candidate tag based only on previous ones. # This assumes that RELEASES are in format of "v0.1.2" and prereleases (RCs) are using "v0.1.2-rc0" -function release_candidate { +function release_candidate() { LAST_TAG=$(git semver) if [[ $LAST_TAG =~ -rc* ]]; then - LAST_RELEASE=$(echo "$LAST_TAG" | cut -d'-' -f 1) + VERSION=$(echo "$LAST_TAG" | cut -d'-' -f 1) LAST_RC=$(echo "$LAST_TAG" | cut -d'c' -f 2) RC=$((LAST_RC + 1)) else - LAST_RELEASE=$LAST_TAG + VERSION="$(git semver --next-minor)" RC=0 fi - GIT_TAG="v$LAST_RELEASE-rc$RC" - export GIT_TAG + GIT_TAG="v$VERSION-rc$RC" } # Check if current commit is tagged or not @@ -62,20 +50,10 @@ if [ -z "${GIT_TAG}" ]; then *"[netdata minor release]"*) GIT_TAG="v$(git semver --next-minor)" ;; *"[netdata major release]"*) GIT_TAG="v$(git semver --next-major)" ;; *"[netdata release candidate]"*) release_candidate ;; - *) echo "Keyword not detected. Exiting..."; exit 1;; + *) + echo "Keyword not detected. Exiting..." + exit 0 + ;; esac - # Tag it! - if [ "$GIT_TAG" != "HEAD" ]; then - echo "Assigning a new tag: $GIT_TAG" - embed_version "$GIT_TAG" - git commit -m "[ci skip] release $GIT_TAG" - git tag "$GIT_TAG" -a -m "Automatic tag generation for travis build no. $TRAVIS_BUILD_NUMBER" - git push "https://${GITHUB_TOKEN}:@$(git config --get remote.origin.url | sed -e 's/^https:\/\///')" - git push "https://${GITHUB_TOKEN}:@$(git config --get remote.origin.url | sed -e 's/^https:\/\///')" --tags - fi -else - embed_version "$GIT_TAG" - git commit -m "[ci skip] release $GIT_TAG" - git push "https://${GITHUB_TOKEN}:@$(git config --get remote.origin.url | sed -e 's/^https:\/\///')" fi export GIT_TAG |