Могу ли я иметь несколько файлов рабочих процессов 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, если ваша операция запускает событие, рабочий процесс будет запущен, они могут быть параллельными.

Другие вопросы по тегам