diff --git a/gitlab/functions.sh b/gitlab/functions.sh index 5556c3173857b94923a425f72a4cc9993a8d4ed6..2438e200920c0fb9e82a8018b2a98a77441df2f4 100644 --- a/gitlab/functions.sh +++ b/gitlab/functions.sh @@ -17,6 +17,26 @@ visibility() { } +# Determines if we're on the master branch or not +is_master() { + local retval="${CI_COMMIT_REF_NAME}" + if [[ -n "${CI_COMMIT_TAG}" ]]; then + # we're building a tag, check it is available on the master branch + local count=`git branch -a --contains "tags/${CI_COMMIT_TAG}" | grep master | wc -l` + if [[ "${count}" -gt "0" ]]; then #tag is on master + retval="master" + else + retval="it-is-not-master" + fi + fi + if [[ "${retval}" == "master" ]]; then + return "true" + else + return "false" + fi +} + + # Functions for coloring echo commands log_debug() { echo -e "(`date +%T`) \033[1;32m${@}\033[0m" @@ -313,8 +333,7 @@ check_env CI_PROJECT_URL check_env CI_PROJECT_DIR check_env CI_PROJECT_PATH check_env CI_PROJECT_NAME -check_env CI_BUILD_REF -check_env CI_BUILD_REF_NAME +check_env CI_COMMIT_REF_NAME check_pass PYPIUSER check_pass PYPIPASS check_pass DOCUSER @@ -323,6 +342,7 @@ check_pass DOCPASS # Sets up variables OSNAME=`osname` VISIBILITY=`visibility` +IS_MASTER=`is_master` if [ -z "${CONDA_FOLDER}" ]; then CONDA_FOLDER=/opt/conda @@ -330,8 +350,8 @@ fi PYVER=py$(echo ${PYTHON_VERSION} | tr -d '.') if [ -z "${CONDA_ENV}" ]; then - if [ -d "${CONDA_FOLDER}/envs/bob-devel-${PYVER}-${CI_BUILD_REF_NAME}" ]; then - CONDA_ENV=bob-devel-${PYVER}-${CI_BUILD_REF_NAME} + if [ -d "${CONDA_FOLDER}/envs/bob-devel-${PYVER}-${CI_COMMIT_REF_NAME}" ]; then + CONDA_ENV=bob-devel-${PYVER}-${CI_COMMIT_REF_NAME} else CONDA_ENV=bob-devel-${PYVER} fi @@ -355,6 +375,7 @@ TESTSERVER=https://testpypi.python.org/pypi check_env OSNAME check_env VISIBILITY +check_env IS_MASTER check_env PYVER check_env PREFIX export_env PREFIX @@ -366,7 +387,7 @@ check_env CONDA_ENV export_env BOB_PREFIX_PATH # Setup default documentation server -if [ -z "${CI_BUILD_TAG}" ]; then +if [ -z "${CI_COMMIT_TAG}" ]; then DEFSRV="${DOCSERVER}/software/bob/docs/latest/bob/%s/master/" else DEFSRV="http://pythonhosted.org/%s/" @@ -383,8 +404,35 @@ fi unset DEFSRV export_env BOB_DOCUMENTATION_SERVER -# sets up certificates for curl and openssl +# Sets up certificates for curl and openssl CURL_CA_BUNDLE="${SCRIPTS_DIR}/cacert.pem" export_env CURL_CA_BUNDLE SSL_CERT_FILE="${CURL_CA_BUNDLE}" export_env SSL_CERT_FILE + +# Sets up upload folders for documentation (just in case we need them) +# See: https://gitlab.idiap.ch/bob/bob.admin/issues/2 + +# Prefix differs between private & public repos +DOC_SERVER_PREFIX="-upload/${CI_PROJECT_PATH}/docs" +if [[ "${VISIBILITY}" == "public" ]]; then + DOCS_SERVER_PREFIX="public${DOCS_SERVER_PREFIX} +else + DOCS_SERVER_PREFIX="private${DOCS_SERVER_PREFIX} +fi + +DOC_UPLOADS=() + +if [[ "${IS_MASTER} == "true" ]]; then + DOC_UPLOADS+=("$DOCS_SERVER_PREFIX/master/") +fi + +if [[ -n "${CI_COMMIT_TAG}" ]]; then + DOC_UPLOADS+=("$DOCS_SERVER_PREFIX/$CI_COMMIT_TAG/") +fi + +if [[ -n "${CI_COMMIT_TAG}" && "${IS_MASTER}" == "true" ]]; then + DOC_UPLOADS+=("$DOCS_SERVER_PREFIX/stable/") +fi +unset DOCS_SERVER_PREFIX +check_env DOC_UPLOADS