summaryrefslogtreecommitdiffstats
path: root/.travis/releaser.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis/releaser.sh')
-rwxr-xr-x.travis/releaser.sh65
1 files changed, 28 insertions, 37 deletions
diff --git a/.travis/releaser.sh b/.travis/releaser.sh
index 9f7ecd4ee..c184cc726 100755
--- a/.travis/releaser.sh
+++ b/.travis/releaser.sh
@@ -21,49 +21,24 @@
# Requirements:
# - GITHUB_TOKEN variable set with GitHub token. Access level: repo.public_repo
# - docker
-# - git-semver python package (pip install git-semver)
set -e
-if [ ! -f .gitignore ]
-then
- echo "Run as ./travis/$(basename "$0") from top level directory of git repository"
- exit 1
+if [ ! -f .gitignore ]; then
+ echo "Run as ./travis/$(basename "$0") from top level directory of git repository"
+ exit 1
fi
-echo "---- GENERATING CHANGELOG -----"
-./.travis/generate_changelog.sh
+export GIT_MAIL="pawel+bot@netdata.cloud"
+export GIT_USER="netdatabot"
+echo "--- Initialize git configuration ---"
+git config user.email "${GIT_MAIL}"
+git config user.name "${GIT_USER}"
echo "---- FIGURING OUT TAGS ----"
-# Check if current commit is tagged or not
-GIT_TAG=$(git tag --points-at)
-if [ -z "${GIT_TAG}" ]; then
- git semver
- # Figure out next tag based on commit message
- GIT_TAG=HEAD
- echo "Last commit message: $TRAVIS_COMMIT_MESSAGE"
- case "${TRAVIS_COMMIT_MESSAGE}" in
- *"[netdata patch release]"* ) GIT_TAG="v$(git semver --next-patch)" ;;
- *"[netdata minor release]"* ) GIT_TAG="v$(git semver --next-minor)" ;;
- *"[netdata major release]"* ) GIT_TAG="v$(git semver --next-major)" ;;
- *) echo "Keyword not detected. Doing nothing" ;;
- esac
-
- # Tag it!
- if [ "$GIT_TAG" != "HEAD" ]; then
- echo "Assigning a new tag: $GIT_TAG"
- git tag "$GIT_TAG" -a -m "Automatic tag generation for travis build no. $TRAVIS_BUILD_NUMBER"
- # git is able to push due to configuration already being initialized in `generate_changelog.sh` script
- git push "https://${GITHUB_TOKEN}:@$(git config --get remote.origin.url | sed -e 's/^https:\/\///')" --tags
- fi
-fi
-
-if [ "${GIT_TAG}" == "HEAD" ]; then
- echo "Not creating a release since neither of two conditions was met:"
- echo " - keyword in commit message"
- echo " - commit is tagged"
- exit 0
-fi
+# tagger.sh is sourced since we need environment variables it sets
+#shellcheck source=/dev/null
+source .travis/tagger.sh || exit 0
echo "---- CREATING TAGGED DOCKER CONTAINERS ----"
export REPOSITORY="netdata/netdata"
@@ -80,4 +55,20 @@ tar -C /tmp -xvf "/tmp/hub-linux-amd64-${HUB_VERSION}.tgz"
export PATH=$PATH:"/tmp/hub-linux-amd64-${HUB_VERSION}/bin"
# Create a release draft
-hub release create --draft -a "netdata-${GIT_TAG}.tar.gz" -a "netdata-${GIT_TAG}.gz.run" -a "sha256sums.txt" -m "${GIT_TAG}" "${GIT_TAG}"
+if [ -z ${GIT_TAG+x} ]; then
+ echo "Variable GIT_TAG is not set. Something went terribly wrong! Exiting."
+ exit 1
+fi
+if [ "${GIT_TAG}" != "$(git tag --points-at)" ]; then
+ echo "ERROR! Current commit is not tagged. Stopping release creation."
+ exit 1
+fi
+if [ -z ${RC+x} ]; then
+ hub release create --prerelease --draft -a "netdata-${GIT_TAG}.tar.gz" -a "netdata-${GIT_TAG}.gz.run" -a "sha256sums.txt" -m "${GIT_TAG}" "${GIT_TAG}"
+else
+ hub release create --draft -a "netdata-${GIT_TAG}.tar.gz" -a "netdata-${GIT_TAG}.gz.run" -a "sha256sums.txt" -m "${GIT_TAG}" "${GIT_TAG}"
+fi
+
+# Changelog needs to be created AFTER new release to avoid problems with circular dependencies and wrong entries in changelog file
+echo "---- GENERATING CHANGELOG -----"
+./.travis/generate_changelog.sh