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