我想测试每个提交(工作流“测试”)。如果提交被标记并位于某个分支上,则应该触发部署(工作流“test”)。因此,我创建了以下工作流:
workflows:
version: 2
test:
jobs:
- test-py36-yml
test-n-deploy:
jobs:
- test-py36-yml:
filters:
tags:
only: /[0-9]+(\.[0-9]+)*/
- test-deploy-pypi:
requires:
- test-py36-yml
filters:
tags:
only: /[0-9]+(\.[0-9]+)*/
branches:
only:
- test_deployment_pypi
- test_deployment_script完整的脚本可以在这里找到:https://github.com/kipoi/kipoi/blob/test_deployment_pypi/.circleci/config.yml
My的问题: CircleCI完全忽略标记过滤器。即使提交被取消标记,它也运行整个test-n-deploy工作流。
我做错什么了?
发布于 2020-05-12 06:51:06
CircleCI过滤器不合并这两个过滤器,它就像一个“或”语句。在您的例子中,即使您已经过滤了标记,如果test-deploy-pypi将在您筛选过的一个分支中运行:test_deployment_pypi或test_deployment_script,那么它也会运行。
为了使它只对标记起作用,您必须忽略这些分支:
filters:
branches:
ignore: /.*/
tags:
only: /v[0-9]+(\.[0-9]+)*/请注意,我还在开始时将标记筛选器更改为"v“,因为标记会自动添加它,除非您重写它。如果您确实将标记名从默认名称更改为,则将其更改为regex。
https://stackoverflow.com/questions/58792796
复制相似问题