Circleci:如何根据git标签进行部署

dst*_*opf 12 git git-tag circleci

有没有办法限制具有特定git标签的检查上的circleci部署?

目前我正在使用这个

...
deployment:
  dockerhub:
    branch: master
    commands:
      - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
      - docker push abcdef
Run Code Online (Sandbox Code Playgroud)

而不是branch: master我想写的东西tag: /release_.*/

背景:我想根据git标签设置docker标签.因此,例如,无论何时提交某些东西,latest都会创建并推送带有标记的新docker图像.每当设置特殊的git标签时(例如release_1.0_2015-06-13),1.0将创建并推送带有标签的新docker镜像.

替代方案是仅根据不同的标签使用不同的分支.但我想使用标签来标记特定版本.

Dea*_*ean 16

Kim回答说,看起来这个被添加了.

通常,推送标签不会运行构建.如果部署配置的tag属性与您创建的标记的名称相匹配,我们将运行匹配的构建和部署部分.

在下面的示例中,推送名为的标记release-v1.05将触发构建和部署.推送标签qa-9502不会触发构建.

deployment:
  release:
    tag: /release-.*/
    owner: circleci
    commands:
      - ./deploy_master.sh
Run Code Online (Sandbox Code Playgroud)

  • 如果通过推送新标记触发构建,则存在CIRCLE_TAG而不是CIRCLE_BRANCH. (3认同)
  • `tag:/ regexp /`feauture不能正常工作:圆圈上的git checkout步骤没有得到标签......我认为这是一个错误.但它易于解决:添加`git fetch --tags`作为**前**步骤. (2认同)