#github #github-actions
#github-действия
Вопрос:
Я создал в своей основной ветке с
on:
push:
branches: [ test ]
Я заметил, что, хотя я могу запустить его вручную, и он будет работать, на самом деле он не сработает, если я нажму на test
. Для этого мне нужно было создать тот же файл действий test
. Теперь, похоже, мне даже не нужно выполнять действие в main
ветке, это правильно?
Итак, почему даже опция so указывает ветку, в которой она должна запускаться, существует? В любом случае это срабатывает только в тех ветвях, в которых файл существует. Тем не менее, я был разочарован тем, что мне нужно объединить мой один файл из main в мою тестовую ветку, есть ли способ автоматически запускать действие при нажатии, даже если у меня его нет в моей test
ветке, только на main
?
Ответ №1:
Нет, это невозможно. Порядок операций при запуске рабочего процесса, инициируемого запросом push или pull, описан в справочной документации:
- В вашем репозитории происходит событие. Событие имеет связанный commit SHA и Git ref.
- GitHub выполняет поиск в
.github/workflows
каталоге в вашем репозитории файлов рабочего процесса, которые присутствуют в соответствующем commit SHA или Git ref события.- Запуск рабочего процесса запускается для любых рабочих процессов, имеющих значения on:, соответствующие событию запуска. Для некоторых событий также требуется, чтобы файл рабочего процесса присутствовал в ветке репозитория по умолчанию для запуска.
Комментарии:
1. Понятно, спасибо! Тогда почему это вообще возможно сказать
on: push: [branch1, branch2]
?2. Предварительным условием является то, что файлы действий доступны в соответствующей ветке. Тогда вы сможете протестировать / создать все другие изменения в соответствующих ветвях.
3. @dockynodyerror предполагая, что ваши рабочие процессы живут напрасно не в отдельной потерянной ветке, а в
main
ветке, Тогда без указания ветвей каждая разветвленная ветвьmain
(каждый PR и т. Д.) Будет Выполнять рабочий процесс, Что явно нехорошо, если вы хотите выполнять рабочие процессы только при нажатииmain
.