100 lines
3.1 KiB
Bash
Executable File
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}
|