В какой ветви должны располагаться файлы рабочего процесса, чтобы действия GitHub выполняли их?

#github #github-actions

#github-действия

Вопрос:

Я создал в своей основной ветке с

 on:  
  push:
      branches: [ test ]
 

Я заметил, что, хотя я могу запустить его вручную, и он будет работать, на самом деле он не сработает, если я нажму на test . Для этого мне нужно было создать тот же файл действий test . Теперь, похоже, мне даже не нужно выполнять действие в main ветке, это правильно?

Итак, почему даже опция so указывает ветку, в которой она должна запускаться, существует? В любом случае это срабатывает только в тех ветвях, в которых файл существует. Тем не менее, я был разочарован тем, что мне нужно объединить мой один файл из main в мою тестовую ветку, есть ли способ автоматически запускать действие при нажатии, даже если у меня его нет в моей test ветке, только на main ?

Ответ №1:

Нет, это невозможно. Порядок операций при запуске рабочего процесса, инициируемого запросом push или pull, описан в справочной документации:

  1. В вашем репозитории происходит событие. Событие имеет связанный commit SHA и Git ref.
  2. GitHub выполняет поиск в .github/workflows каталоге в вашем репозитории файлов рабочего процесса, которые присутствуют в соответствующем commit SHA или Git ref события.
  3. Запуск рабочего процесса запускается для любых рабочих процессов, имеющих значения on:, соответствующие событию запуска. Для некоторых событий также требуется, чтобы файл рабочего процесса присутствовал в ветке репозитория по умолчанию для запуска.

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

1. Понятно, спасибо! Тогда почему это вообще возможно сказать on: push: [branch1, branch2] ?

2. Предварительным условием является то, что файлы действий доступны в соответствующей ветке. Тогда вы сможете протестировать / создать все другие изменения в соответствующих ветвях.

3. @dockynodyerror предполагая, что ваши рабочие процессы живут напрасно не в отдельной потерянной ветке, а в main ветке, Тогда без указания ветвей каждая разветвленная ветвь main (каждый PR и т. Д.) Будет Выполнять рабочий процесс, Что явно нехорошо, если вы хотите выполнять рабочие процессы только при нажатии main .