Действия GitHub: как настроить таргетинг на все филиалы, кроме мастера?
Я хочу иметь возможность запускать действие в любой ветви, кроме master. Я знаю, что есть встроенный filter
действие, но я хочу с точностью до наоборот.
Больше похоже на GitLab's except
ключевое слово. Так как это не входит в официальные документы, кто-нибудь подготовил достойный обходной путь?
Большое спасибо.
1 ответ
Обновление: в ответе Сэми описан более новый фильтр , который обеспечивает более лаконичный способ достижения этой цели.
В документацию добавлена дополнительная информация:
Когда вы указываете
branches
илиtags
фильтр, рабочий процесс запускается только при совпадении хотя бы одного шаблона. Любые изменения ветвей или тегов, которые не соответствуют определенному шаблону, не вызовут рабочий процесс. Порядок, в котором вы определяете шаблоны, имеет значение:
- Соответствующий отрицательный шаблон после положительного совпадения снова исключает ссылку.
- Соответствующий положительный шаблон после отрицательного совпадения снова будет включать ссылку.
Итак, чтобы исключить master
, вам необходимо убедиться, что сначала включен шаблон, соответствующий всему:
on:
push:
branches:
- '*' # matches every branch that doesn't contain a '/'
- '*/*' # matches every branch containing a single '/'
- '**' # matches every branch
- '!master' # excludes master
Сейчас есть branches-ignore
вариант:
on:
push:
branches-ignore:
- master
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
Кажется, что это можно использовать: https://github.com/actions/bin/tree/master/filter