39 lines
1.7 KiB
Bash
Executable File
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
|