У меня есть файл .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
определяют ветви, но я не вижу, как я могу указать имя тега условно, основываясь на ветви.