diff --git a/.circleci/config.yml b/.circleci/config.yml index fa5ebcac..90bba23b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,6 +18,8 @@ jobs: mkdir /tmp/upload echo 'export CINAME=$(sh contrib/semver/name.sh)' >> $BASH_ENV echo 'export CIVERSION=$(sh contrib/semver/version.sh | cut -c 2-)' >> $BASH_ENV + git config --global user.email "$(git log --format='%ae' HEAD -1)"; + git config --global user.name "$(git log --format='%an' HEAD -1)"; - run: name: Install alien @@ -98,3 +100,13 @@ jobs: - store_artifacts: path: /tmp/upload destination: / + + - run: + name: Create tags (master branch only) + command: > + if [ "${CIRCLE_BRANCH}" == "master" ]; then + git tag -f -a $(sh contrib/semver/version.sh) -m "Created by CircleCI" && git push -f --tags; + else + echo "Only runs for master branch (this is ${CIRCLE_BRANCH})"; + fi; + when: on_success diff --git a/contrib/.DS_Store b/contrib/.DS_Store new file mode 100644 index 00000000..799616ae Binary files /dev/null and b/contrib/.DS_Store differ diff --git a/contrib/semver/version.sh b/contrib/semver/version.sh index bd009a9a..6eeffc5f 100644 --- a/contrib/semver/version.sh +++ b/contrib/semver/version.sh @@ -4,7 +4,7 @@ DEVELOPBRANCH="yggdrasil-network/develop" # Get the last tag -TAG=$(git describe --abbrev=0 --tags --match="v[0-9]*\.[0-9]*" 2>/dev/null) +TAG=$(git describe --abbrev=0 --tags --match="v[0-9]*\.[0-9]*\.0" 2>/dev/null) # Get last merge to master MERGE=$(git rev-list $TAG..master --grep "from $DEVELOPBRANCH" 2>/dev/null | head -n 1) @@ -32,7 +32,11 @@ BRANCH=$(git rev-parse --abbrev-ref HEAD) # Output in the desired format if [ $PATCH = 0 ]; then - printf 'v%d.%d' "$MAJOR" "$MINOR" + if [ ! -z $FULL ]; then + printf 'v%d.%d.0' "$MAJOR" "$MINOR" + else + printf 'v%d.%d' "$MAJOR" "$MINOR" + fi else printf 'v%d.%d.%d' "$MAJOR" "$MINOR" "$PATCH" fi @@ -43,4 +47,3 @@ if [ $BRANCH != "master" ]; then printf -- "-%04d" "$BUILD" fi fi -