[Tarantool-patches] [PATCH v1] gitlab-ci: fix deployment of tagged commits

Sergey Bronnikov sergeyb at tarantool.org
Fri Sep 11 16:16:01 MSK 2020


LGTM

Although there is a thing I'm worry about: CI_COMMIT_TAG

is an environment variable specific for GitLab CI. Travis CI and GitHub 
Actions

doesn't export such variable and condition will works always.


1. https://docs.travis-ci.com/user/environment-variables/

2. 
https://docs.gitlab.com/ee/ci/variables/README.html#predefined-environment-variables

3. 
https://docs.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables


On 02.09.2020 13:25, Alexander V. Tikhonov wrote:
> Found that tagged commits were not run the deployment gitlab-ci jobs.
> To fix it added 'tags' label for deployment and perfomance jobs. Also
> found that after the commit tagged it has tag label in format 'x^0'
> and all previous commits till the previous tag became to have tags in
> format 'x~<commits before>' like 'x~1' or 'x~2' and etc. So the check
>
>    if git name-rev --name-only --tags --no-undefined HEAD ; then
>
> became always pass and previous commits on rerun could began to deploy.
> To fix it was used gitlab-ci environment variable 'CI_COMMIT_TAG', it
> shows in real if the current commit has tag and has to be deployed.
>
> Part of #3745
> ---
>
> Github: https://github.com/tarantool/tarantool/tree/avtikhon/gh-3745-gitlab-ci-tags
> Issue: https://github.com/tarantool/tarantool/issues/3745
>
>   .gitlab-ci.yml | 3 +++
>   .gitlab.mk     | 2 +-
>   2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 05d40b013..c144aae9c 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -38,6 +38,7 @@ before_script:
>   .deploy_only_template: &deploy_only_definition
>     only:
>       - master
> +    - tags
>     except:
>       - schedules
>       - external_pull_requests
> @@ -46,10 +47,12 @@ before_script:
>   .pack_only_template: &pack_only_definition
>     except:
>       - master
> +    - tags
>   
>   .perf_only_template: &perf_only_definition
>     only:
>       - master
> +    - tags
>       - /^.*-perf$/
>     except:
>       - schedules
> diff --git a/.gitlab.mk b/.gitlab.mk
> index 0ce978063..1b3ffddcc 100644
> --- a/.gitlab.mk
> +++ b/.gitlab.mk
> @@ -121,7 +121,7 @@ deploy: package
>   	echo ${GPG_SECRET_KEY} | base64 -d | gpg --batch --import || true
>   	./tools/update_repo.sh -o=${OS} -d=${DIST} \
>   		-b="${LIVE_REPO_S3_DIR}/${BUCKET}" build
> -	if git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null ; then \
> +	if [ "${CI_COMMIT_TAG}" != "" ]; then \
>   		./tools/update_repo.sh -o=${OS} -d=${DIST} \
>   			-b="${RELEASE_REPO_S3_DIR}/${BUCKET}" build ; \
>   	fi


More information about the Tarantool-patches mailing list