CircleCI игнорирует фильтры тегов git

Я хочу протестировать каждую фиксацию («тест» рабочего процесса). В случае, если фиксация помечена и в определенной ветке, развертывание должно быть запущено (рабочий процесс «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

Полный сценарий можно найти здесь: https://github.com/kipoi/kipoi/blob/test_deployment_pypi/.circleci/config.yml

Моя проблема: CircleCI полностью игнорирует фильтры тегов. Даже если фиксация не помечена, она выполняет весь test-n-deploy рабочий процесс.

Что я сделал не так?


person Hoeze    schedule 10.11.2019    source источник
comment
@jonrsharpe Каким образом? Если вы проверите журналы CI (circleci.com/gh/kipoi/kipoi), вы можете убедитесь, что задание № 2914 правильно запускает рабочий процесс тестирования, а задания № 2915 и № 2916 ошибочно запускают test-n-deploy для немаркированной фиксации.   -  person Hoeze    schedule 11.11.2019


Ответы (1)


Фильтр CircleCI не объединяет оба фильтра, он похож на оператор «или». В вашем случае, даже если вы отфильтровали теги, test-deploy-pypi будет запущен, если он будет в одной из отфильтрованных веток: test_deployment_pypi или test_deployment_script.

Чтобы он работал только с тегами, вам придется игнорировать эти ветки:

  filters:
    branches:
      ignore: /.*/
    tags:
      only: /v[0-9]+(\.[0-9]+)*/

Обратите внимание, что я также изменил фильтр тегов, чтобы он содержал букву «v» в начале, поскольку теги добавляют его автоматически, если вы его не переопределите. Если вы измените имя тега с имени по умолчанию, измените его обратно на свое регулярное выражение.

person MasterPiece    schedule 12.05.2020