diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d7afe0..4bc0062 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,10 +7,22 @@ stages: - build - deploy + +variables: + DOCKER_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + build: stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG . + - docker build --pull -t "$DOCKER_IMAGE_NAME" . + - docker push "$DOCKER_IMAGE_NAME" + - | + if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then + docker tag "$DOCKER_IMAGE_NAME" "$CI_REGISTRY_IMAGE:latest" + docker push "$CI_REGISTRY_IMAGE:latest" + fi # Run this job in a branch where a Dockerfile exists rules: - if: $CI_COMMIT_BRANCH @@ -19,11 +31,12 @@ build: deploy: stage: deploy + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - tags: - - docker + - docker pull $CI_REGISTRY_IMAGE:latest + - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG + - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG only: - tags when: on_success -