ci-demo-2/version.sh

31 lines
1.2 KiB
Bash
Executable File

#!/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}"