Могу ли я иметь несколько файлов рабочих процессов GitHub Actions?
Могу ли я иметь несколько файлов рабочих процессов?
У меня есть несколько репозиториев, использующих GitHub Actions, и они прекрасно работают! В моем конкретном случае использования я автоматически развертываюсь в своей среде разработки при "push" и автоматически развертываюсь в рабочей среде при "выпуске". Это два отдельных рабочих процесса.
Я знаю, что у меня могут быть эти два рабочих процесса в одном и том же файле main.workflow, и это будет прекрасно работать, но я бы предпочел, чтобы они были полностью в отдельных файлах рабочего процесса. Можно ли, например, иметь файл dev.workflow и файл prod.workflow?
Я попытался создать файл dev.workflow и prod.workflow, но, похоже, они не были обнаружены действиями. Похоже, файл main.workflow требуется. Если это так, есть ли способ добавить другие файлы рабочего процесса в main.workflow?
3 ответа
Вы можете иметь сколько файлов вы хотите в .github/workflows
папка и все файлы будут прочитаны и будут запускаться как независимые тесты. Параметр "on" в каждом файле сообщит, когда он должен быть вызван.
С тех пор как этот вопрос был задан, GitHub внес несколько изменений в рабочие процессы. Теперь они записаны в синтаксисе YAML, а не в HCL, а не хранятся в .github/main.workflow
файл, они хранятся в .github/workflows
каталог. В документации сказано, что "Вы должны хранить файлы рабочих процессов" (обратите внимание на множественное число) "в .github/workflows
каталог вашего хранилища."
Так что, как только вы портируете main.workflow
файл с синтаксисом YAML, вы должны иметь возможность хранить каждый рабочий процесс в одном файле, как вы хотели.
Да, у вас может быть несколько файлов yml в каталоге рабочего процесса, и вы также можете иметь все они в одинаковом состоянии, чтобы их можно было запускать параллельно. Однако это не рекомендуется. что касается ответа от [https://github.community/t/execution-order-for-multiple-workflows-in-one-repo/116780]
Каждому рабочему процессу нужен триггер события, определенный в файле yaml, если ваша операция запускает событие, рабочий процесс будет запущен, они могут быть параллельными.