Условно пометьте изображение докера с другим именем в gitlab-ci.yml - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть файл .gitlab-ci.yml, который в настоящее время публикует образ Docker в Docker Hub с тегом latest на каждом коммите, на всех ветвях.

Я хочу обновить свой .gitlab-ci.yml, чтобы изображение Docker было помечено по-разному в зависимости от ветви, в которой зафиксирован коммит.

Я хочу иметь тег latest-dev для фиксации в ветвях объектов и тег latest для фиксации / слияния с мастером.

Вот текущее определение в моем `.gitlab-ci.yml ':

.publish-image: &publish_image
  script:
    - if [ "${REVIEW_APP}" == "true" ]; then DOCKER_IMAGE_TAG="${GITLAB_USER_LOGIN}-${CI_COMMIT_SHA:0:8}"; else DOCKER_IMAGE_TAG=${CI_COMMIT_SHA:0:8}; fi
    - echo $DOCKER_REGISTRY_PASSWORD | docker login -u $DOCKER_REGISTRY_USER --password-stdin 
    - echo Publishing the docker image for commit-${CI_COMMIT_SHA:0:8} by $GITLAB_USER_LOGIN with tag $DOCKER_IMAGE_TAG
    - echo Bundling without ${BUILD_WITHOUT}
    - docker build --build-arg BUILD_WITHOUT="${BUILD_WITHOUT}" --pull -t $DOCKER_REGISTRY_IMAGE:$DOCKER_IMAGE_TAG -t $DOCKER_REGISTRY_IMAGE:latest --no-cache .
    - docker push $DOCKER_REGISTRY_IMAGE:$DOCKER_IMAGE_TAG
    - docker push $DOCKER_REGISTRY_IMAGE:latest

publish-for-review:
  <<: *publish_image
  stage: publish-for-review
  variables:
    REVIEW_APP: "true"
    BUILD_WITHOUT: "test"
  only:
  - branches
  except:
  - master

only и except определяют ветви, но я не вижу, как я могу указать имя тега условно, основываясь на ветви.

...