Действия GitHub выполняются при отправке во все ветви

#continuous-integration #glob #github-actions

#непрерывная интеграция #глоб #github-действия

Вопрос:

Легко запустить действие GitHub для любого запроса push или pull:

 # Triggers the workflow on push or pull request events
on: [push, pull_request]
  

Но что, если я хочу ограничить выполнение запросов на извлечение, открытых для определенных базовых ссылок, разрешив при этом выполнение во всех ветвях?

Я думал об этом:

 on:
  push:
    branches:
      - "*"
  pull_request:
    branches:
      - "develop"
      - "staging"
  

Но это не сработало. Я добавил это действие в ветку функций, и GitHub его не обнаружил.

Что-то не так с моим глобусом? Почему ‘*’ не работает?

Ответ №1:

Я нашел шпаргалку с шаблоном фильтра после публикации вопроса:

‘*’: соответствует всем именам ветвей и тегов, которые не содержат косой черты (/). Символ * является специальным символом в YAML. Когда вы начинаете шаблон> с *, вы должны использовать кавычки.

‘**’: соответствует всем именам ветвей и тегов. Это поведение по умолчанию, когда вы не используете фильтр ветвей или тегов.

Случилось так, что ветка, которую я тестировал, содержала косую черту (/), поэтому одной звездочки (*) было недостаточно. Я переключился на две звездочки (**), и теперь это работает.

Комментарии:

1. Вы также можете branches полностью удалить объект, чтобы запускать события для любой ветки.

2. Файл yml не компилируется при удалении branches , потому on что это сопоставление.

3. Разве вам также не нужно объединять . Файл YML для ВСЕХ ветвей, чтобы триггеры действительно работали для каждой именованной ветви?

4. @PaulRazvanBerg Попробуйте использовать on: {}

Ответ №2:

Полное снятие ограничений на отправку означает запуск всех из них (коммитов, а также тегов):

 on:
  push:
  pull_request:
    branches:
      - develop
      - staging

jobs:
  print:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Running!"
  

Комментарии:

1. Примечание: при отбрасывании branches рабочий процесс будет выполняться и для перемещений тегов, а не только для перемещений ветвей.

2. @Suma Хороший момент, добавил замечание, чтобы указать на это.