Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CircleCI忽略git标记过滤器_Git_Continuous Integration_Circleci - Fatal编程技术网

CircleCI忽略git标记过滤器

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

我想测试每个提交(工作流“测试”)。如果提交被标记并位于某个分支上,则应触发部署(工作流“test-n-deploy”)。 因此,我创建了以下工作流:

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错误地为未标记的提交运行“测试-部署”。