12

有没有办法限制在具有特定 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带有标签的新 docker 镜像。1.0

另一种方法是根据不同的标签只使用不同的分支。但我想使用标签来标记特定版本。

4

3 回答 3

16

看起来这是在金回答后添加的。

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

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

deployment:
  release:
    tag: /release-.*/
    owner: circleci
    commands:
      - ./deploy_master.sh
于 2015-08-28T19:21:02.683 回答
3

这是来自 CircleCI 的 Kim。

要归档您想做的事情,我认为您必须能够在将新标签推送到 Github 时触发构建。但是,只有新的提交才会触发构建,所以目前看来这是不可行的。对不起!

更新:此功能现已实施:https ://circleci.com/docs/configuration/#tags

于 2015-06-15T08:33:39.020 回答
3

我把它放在这里是为了那些遵循文档但没有让它工作的人。branch only如果您在常规设置中有配置,CircleCI 似乎完全忽略了标签。这样,标记的提交将显示为“未运行”。

要仅在特定分支上构建并在特定标签上部署,请使用branchandignore选项以及负前瞻正则表达式:

# circle.yml
general:
  branches:
    ignore:
      - /^(?!master).*$/
deployment:
  beta:
    tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
    owner: mediafreakch
    commands:
      - deploy.sh

master如果它是标记的提交,这将构建每个提交并部署。要标记提交,我使用npm version.

于 2016-07-25T06:41:49.757 回答