Конфигурация circleci v2 - как мы фильтруем по владельцу в рабочем процессе?

В конфиге circleci версии 1 была возможность указать owner как вариант в развертывании. Пример из документов circleci ( https://circleci.com/docs/1.0/configuration/) с owner: circleci будучи ключевой линией:

deployment:
  master:
    branch: master
    owner: circleci
    commands:
      - ./deploy_master.sh

Во второй версии конфигурации есть возможность использовать фильтры и теги, чтобы указать, какие ветви создаются, но мне еще предстоит найти (в документах или на веб-страницах) все, что дает мне такую ​​же возможность.

Я пытаюсь выполнить шаги сборки и тестирования на вилках, но выполнять шаги развертывания только в том случае, если владельцем репозитория является основной репозиторий. Довольно часто люди разветвляются, используя одно и то же имя ветви - в этом случае master - таким образом, сбой сборки из-за невозможности развертывания противоречит интуиции, особенно потому, что я хотел бы использовать защищенную ветку в git и только коммиты слияния, основанные на успешной сборке в запросе на извлечение.

Я понимаю, что мы могли бы перейти только к запуску сборок, основанных на присутствующих тегах, но ничто не мешает кому-то с помощью разветвления также создать тег в его разветвлении, что возвращает нас на первое место.

Кто-нибудь знает, как указать владельца репо в конфиге версии 2?

Пример из документа конфигурации версии 2 ( https://circleci.com/docs/2.0/workflows/) на случай, если он помогает пробежаться по памяти:

workflows:
  version: 2
  un-tagged-build:
    jobs:
      - build:
          filters:
            tags:
              ignore: /^v.*/
  tagged-build:
    jobs:
      - build:
          filters:
            branches:
              ignore: /.*/
        tags:
          only: /^v.*/

1 ответ

Решение

Отказ от ответственности: евангелист разработчика в CircleCI

Эта функция недоступна в CircleCI 2.0. Вы можете запросить это здесь.

В качестве альтернативы, вы можете найти название ветви, скажем, master, так же хорошо как CIRCLE_PR_NUMBER переменная окружения. Если эта переменная имеет какое-либо значение, то это форк master и вы не должны развертывать.