CircleCI忽略git标记过滤器
我想测试每个提交(工作流“测试”)。如果提交被标记并位于某个分支上,则应触发部署(工作流“test-n-deploy”)。 因此,我创建了以下工作流:CircleCI忽略git标记过滤器,git,continuous-integration,circleci,Git,Continuous Integration,Circleci,我想测试每个提交(工作流“测试”)。如果提交被标记并位于某个分支上,则应触发部署(工作流“test-n-deploy”)。 因此,我创建了以下工作流: workflows: version: 2 test: jobs: - test-py36-yml test-n-deploy: jobs: - test-py36-yml: filters: tags: only: /[0
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
完整的脚本可在此处找到:
我的问题:
CircleCI完全忽略标记过滤器。即使提交没有标记,它也会运行整个test-n-deploy
工作流
我做错了什么?CircleCI filter并没有将两个过滤器组合在一起,它就像一个“或”语句。 在您的情况下,即使您已经筛选了标记,
test-deploy-pypi
将在您筛选的分支之一中运行:test\u-deployment\u-pypi
或test\u-deployment\u-script
为了使其仅适用于标记,您必须忽略这些分支:
filters:
branches:
ignore: /.*/
tags:
only: /v[0-9]+(\.[0-9]+)*/
请注意,我还将标记过滤器更改为在开始处使用“v”,因为标记会自动添加它,除非您覆盖它。
如果您确实更改了默认标记名,请将其更改回您的正则表达式。您是否阅读了例如?您的配置似乎与您描述的不匹配。@jornsharpe以哪种方式?如果检查CI日志(),可以看到作业#2914正确地运行“测试”工作流,而作业#2915和#2916错误地为未标记的提交运行“测试-部署”。