diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5a44306..4f5b183 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,18 +2,23 @@ stages: - generate - release +variables: + TAGS: "" + generate: stage: generate image: python:3.11-alpine script: - pip install -r requirements.txt - ./update.py > tags.txt + rules: + # if specific version is set, don't run this job + - if: '$TAGS == ""' artifacts: expire_in: 1 hour paths: - tags.txt - release-image: needs: - job: generate @@ -22,6 +27,13 @@ release-image: stage: release services: - docker:dind + rules: + # if not specific version is set, use artifacts from generate job + - if: '$TAGS == ""' + needs: + - job: generate + artifacts: true + - if: '$TAGS' variables: DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" @@ -31,8 +43,9 @@ release-image: - until docker info; do sleep 1; done - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: + - if [ -z "$TAGS" ]; then export TAGS=$(cat tags.txt); fi - | - for tag in $(cat tags.txt); do + for tag in $TAGS; do export IMAGE_TAG=$CI_REGISTRY_IMAGE:$tag echo $IMAGE_TAG sed "s/latest/$tag/g" Dockerfile > Dockerfile.tmp