Конфигурация 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
и вы не должны развертывать.