我有一个.gitlab-ci.yml
文件,该文件当前在所有分支上的每次提交时都使用latest
标签将Docker映像发布到Docker Hub。
我想更新.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
指定分支,但是我看不到如何根据分支有条件地指定标签名称。