100 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
set -e
SERVICE_NAME=$1
project_name="red"
HOST="nexus.iqser.com"
PORT="5001"
mkdir -p ~/.ssh
echo "${bamboo_agent_ssh}" | base64 -d >> ~/.ssh/id_rsa
python3 -m venv build_venv
source build_venv/bin/activate
python3 -m pip install --upgrade pip
pip install poetry
pip install dvc
pip install 'dvc[ssh]'
echo "Pulling dvc data"
dvc pull
# update version in poetry to latest version in git if it is lower
check_poetry_version () {
currentVersion=$(poetry version -s)
tagCount=$(git rev-list --tags --max-count=1 | wc -l)
if [[ $tagCount -gt 0 ]]
then
latestVersion=$(git rev-list --tags --max-count=1 | git describe --tags)
echo "latest version tag in git: ${latestVersion}"
echo "current version in project: ${currentVersion}"
if [[ "$currentVersion" < "$latestVersion" ]]
then
echo "project version is behind"
echo "setting latest git tag as current version"
poetry version "$latestVersion"
updateVersion=0
elif [[ "$currentVersion" == "$latestVersion" ]]
then
echo "project version matches"
echo "keeping the project version"
updateVersion=0
else
echo "project version is higher"
echo "keeping the project version, be aware that a version might have been skipped"
updateVersion=1
fi
else
updateVersion=1
fi
return $updateVersion
}
if [[ "$bamboo_planRepository_branchName" == "master" ]]
then
if check_poetry_version
then
poetry version minor
fi
newVersion="$(poetry version -s)"
echo "new release on master with version: $newVersion"
elif [[ "$bamboo_planRepository_branchName" == release* ]]
then
if check_poetry_version
then
poetry version patch
fi
newVersion="$(poetry version -s)"
echo "new release on $bamboo_planRepository_branchName with version $newVersion"
elif [[ "${bamboo_version_tag}" != "dev" ]]
then
newVersion="${bamboo_version_tag}"
echo "new special version build with: $newVersion"
else
newVersion="${bamboo_planRepository_1_branch}_${bamboo_buildNumber}"
echo "gitTag=${newVersion}" > git.tag
echo "dev build with tag: ${newVersion}"
echo "index-url = https://${bamboo_nexus_user}:${bamboo_nexus_password}@${HOST}/repository/python-combind/simple" >> pip.conf
echo "${bamboo_nexus_password}" | docker login --username "${bamboo_nexus_user}" --password-stdin ${HOST}:${PORT}
docker build \
--build-arg SSH_KEY="$(cat ~/.ssh/id_rsa)" -f Dockerfile .
docker push ${HOST}:${PORT}/${project_name}/$SERVICE_NAME:dev
exit 0
fi
echo "gitTag=${newVersion}" > git.tag
echo "index-url = https://${bamboo_nexus_user}:${bamboo_nexus_password}@${HOST}/repository/python-combind/simple" >> pip.conf
echo "${bamboo_nexus_password}" | docker login --username "${bamboo_nexus_user}" --password-stdin ${HOST}:${PORT}
docker build \
-f Dockerfile \
-t ${HOST}:${PORT}/${project_name}/$SERVICE_NAME:${newVersion} \
--build-arg SSH_KEY="$(cat ~/.ssh/id_rsa)"
docker push ${HOST}:${PORT}/${project_name}/$SERVICE_NAME:${newVersion}