ci-demo-2/version.sh

39 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env 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_LAST_RELEASE_TAG=$(git describe --abbrev=0)
CD_PATCH=$(git rev-list $CD_LAST_RELEASE_TAG..HEAD --count)
CD_QUALIFIER=$(git rev-parse --short HEAD)
CD_CURRENT_VERSION="${CD_BASE_VERSION}.${CD_PATCH}"
CD_CURRENT_VERSION_QUALIFIED="${CD_BASE_VERSION}.${CD_PATCH}-${CD_QUALIFIER}"
CD_CURRENT_MAJOR_TAG=$(echo "${CD_BASE_VERSION}" | cut -d'.' -f1)
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_CURRENT_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 "Current Release Version: ${CD_CURRENT_VERSION}"
echo "Current qualified Release Version: ${CD_CURRENT_VERSION_QUALIFIED}"
echo "BASE TAG: ${CD_BASE_VERSION}"
echo "Current Major Release Tag: ${CD_CURRENT_MAJOR_TAG}"
echo "Current Release Tag (normally get from pipeline CI_COMMIT_TAG): ${CD_RELEASE_TAG}"
echo "CD_BASE_VERSION=${CD_BASE_VERSION}" > version-lock.sh
echo "CD_PATCH=${CD_PATCH}" >> version-lock.sh
echo "CD_QUALIFIER=${CD_QUALIFIER}" >> version-lock.sh
echo "CD_LAST_RELEASE_TAG=${CD_LAST_RELEASE_TAG}" >> version-lock.sh
echo "CD_CURRENT_VERSION=${CD_CURRENT_VERSION}" >> version-lock.sh
echo "CD_CURRENT_VERSION_QUALIFIED=${CD_CURRENT_VERSION_QUALIFIED}" >> version-lock.sh
echo "CD_CURRENT_MAJOR_TAG=${CD_CURRENT_MAJOR_TAG}" >> version-lock.sh