#!/bin/bash # We only want to tag in git when the version changes # Next version is based on versioned version.txt # using git describe requires a tag at the begging of development, not at the end TRUNK_BRANCH="dev" CD_BASE_VERSION=$(cat version.txt) CD_PATCH=$(git rev-list --count HEAD ^"${TRUNK_BRANCH}") CD_QUALIFIER=$(git rev-parse --short HEAD) CD_LAST_RELEASE_TAG=$(git tag -l --contains HEAD) CD_CURRENT_VERSION="${CD_BASE_VERSION}.${CD_PATCH}" CD_CURRENT_VERSION_QUALIFIED="${CD_BASE_VERSION}.${CD_PATCH}-${CD_QUALIFIER}" CD_NEXT_MAJOR_TAG=$(cut -d'.' -f1 <<< "${CD_BASE_VERSION}") export CD_BASE_VERSION export CD_PATCH export CD_QUALIFIER export CD_LAST_RELEASE_TAG export CD_CURRENT_VERSION export CD_CURRENT_VERSION_QUALIFIED export CD_NEXT_MAJOR_TAG echo "Example versioning" echo "Trunk Branch: ${TRUNK_BRANCH}" echo "Java Development Version: ${CD_BASE_VERSION}.0-SNAPSHOT" echo "NPM Development Version: ${CD_BASE_VERSION}.alpha.0" echo "Next Release Version: ${CD_CURRENT_VERSION}" echo "Next qualified Release Version: ${CD_CURRENT_VERSION_QUALIFIED}" echo "BASE TAG: ${CD_BASE_VERSION}" echo "Next Major Release Tag: ${CD_NEXT_MAJOR_TAG}" echo "Current Release Tag (normally get from pipeline CI_COMMIT_TAG): ${CD_RELEASE_TAG}"