Circleci:如何根据 git 标签进行部署
Circleci: How to deploy depending on git tag
有没有办法限制 circleci 对具有特定 git 标签的检查的部署?
目前我正在使用这个
...
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
的新 docker 图像。
另一种方法是根据不同的标签只使用不同的分支。但是我想用标签来标记特定的版本。
我是 CircleCI 的 Kim。
要归档您想做的事情,我认为您必须能够在将新标签推送到 Github 时触发构建。但是,只有新的提交才会触发构建,所以目前看来这是不可行的。抱歉!
It looks like this was added 因为 Kim 回答了。
Normally, pushing a tag will not run a build. If there is a deployment configuration with a tag
property that matches the name of the tag you created, we will run the build and the deployment section that matches.
In the below example, pushing a tag named release-v1.05
would trigger a build & deployment. Pushing a tag qa-9502
would not trigger a build.
deployment:
release:
tag: /release-.*/
owner: circleci
commands:
- ./deploy_master.sh
我把它放在这里是为了那些追随 documentation 但没有让它发挥作用的人。如果您在常规设置中有 branch
only
配置,CircleCI 似乎完全忽略标签。标记的提交将以这种方式显示为 "Not run"。
要仅在特定分支上构建并部署在特定标签上,请使用 branch
和 ignore
选项以及否定先行正则表达式:
# circle.yml
general:
branches:
ignore:
- /^(?!master).*$/
deployment:
beta:
tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
owner: mediafreakch
commands:
- deploy.sh
这将构建对 master
的每个提交并部署(如果它是标记的提交)。要标记提交,我使用 npm version
.
有没有办法限制 circleci 对具有特定 git 标签的检查的部署?
目前我正在使用这个
...
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
的新 docker 图像。
另一种方法是根据不同的标签只使用不同的分支。但是我想用标签来标记特定的版本。
我是 CircleCI 的 Kim。
要归档您想做的事情,我认为您必须能够在将新标签推送到 Github 时触发构建。但是,只有新的提交才会触发构建,所以目前看来这是不可行的。抱歉!
It looks like this was added 因为 Kim 回答了。
Normally, pushing a tag will not run a build. If there is a deployment configuration with a
tag
property that matches the name of the tag you created, we will run the build and the deployment section that matches.In the below example, pushing a tag named
release-v1.05
would trigger a build & deployment. Pushing a tagqa-9502
would not trigger a build.deployment: release: tag: /release-.*/ owner: circleci commands: - ./deploy_master.sh
我把它放在这里是为了那些追随 documentation 但没有让它发挥作用的人。如果您在常规设置中有 branch
only
配置,CircleCI 似乎完全忽略标签。标记的提交将以这种方式显示为 "Not run"。
要仅在特定分支上构建并部署在特定标签上,请使用 branch
和 ignore
选项以及否定先行正则表达式:
# circle.yml
general:
branches:
ignore:
- /^(?!master).*$/
deployment:
beta:
tag: /v[0-9]+(\.[0-9]+)*(-.*)*/
owner: mediafreakch
commands:
- deploy.sh
这将构建对 master
的每个提交并部署(如果它是标记的提交)。要标记提交,我使用 npm version
.