有没有办法在具有特定git标签的检查上限制circleci部署?
目前我正在使用此
...
deployment:
dockerhub:
branch: master
commands:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- docker push abcdef
而不是branch: master
我想写一些像tag: /release_.*/
背景:我想根据git标签设置docker标签。因此,例如,无论什么时候提交给master,都会创建并推送带有latest
标记的新docker镜像。只要设置了特殊的git标记(例如release_1.0_2015-06-13
),就会创建并推送带有标记1.0
的新泊坞窗图像。
替代方案是仅根据不同的标签使用不同的分支。但我想使用标签来标记特定版本。
答案 0 :(得分:16)
It looks like this was added因为金回答。
通常,推送标签不会运行构建。如果部署配置的
tag
属性与您创建的标记的名称相匹配,我们将运行匹配的构建和部署部分。在下面的示例中,推送名为
release-v1.05
的标记会触发构建&部署。推送标签qa-9502
不会触发构建。deployment: release: tag: /release-.*/ owner: circleci commands: - ./deploy_master.sh
答案 1 :(得分:4)
这是来自CircleCI的Kim。
要存档您想要执行的操作,我认为您必须能够在将新标记推送到Github时触发构建。但是,只有新的提交才会触发构建,因此现在看来这是不可行的。遗憾!
答案 2 :(得分:3)
我把这个放在documentation之后的人身上,但没有让这个工作。如果您在常规设置中有branch
only
配置,则CircleCI似乎完全忽略标记。标记的提交将显示为"未运行"那样。
要仅在特定分支上构建并在特定代码上部署,请使用branch
和ignore
选项以及否定前瞻性正则表达式:
# circle.yml
general:
branches:
ignore:
- /^(?!master).*$/
deployment:
beta:
tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
owner: mediafreakch
commands:
- deploy.sh
如果它是标记的提交,这将构建每个master
的提交并进行部署。要标记提交,我使用npm version
。