我可以有多个GitHub Actions工作流文件吗?

时间:2019-07-19 15:27:43

标签: github-actions

我可以有多个工作流程文件吗?

我有一些使用GitHub Actions的仓库,它们工作得很好!在我的特定用例中,我在“ push”上自动部署到我的开发环境,并在“ release”上自动部署到生产环境。这是两个单独的工作流程。

我知道我可以在同一个main.workflow文件中拥有这两个工作流,这很好用,但是我希望将它们完全放在单独的工作流文件中。例如,是否可以有一个dev.workflow文件和一个prod.workflow文件?

我曾尝试创建dev.workflow和prod.workflow文件,但Actions似乎并未选择它们。似乎需要一个main.workflow文件。如果是这样,是否有办法将其他工作流程文件来源到main.workflow中?

3 个答案:

答案 0 :(得分:3)

自从提出此问题以来,GitHub对工作流程进行了一些更改。现在,它们是使用YAML语法而不是HCL编写的,而不是存储在.github/main.workflow文件中,而是存储在.github/workflows目录中。 documentation说:“您必须在存储库的.github/workflows目录中存储工作流文件”(请注意复数形式)。

因此,一旦将main.workflow文件移植到YAML语法,您就应该能够按照需要的方式将每个工作流程存储在一个文件中。

答案 1 :(得分:2)

您可能在.github/workflows文件夹中有多少个文件,所有文件将被读取并作为独立测试运行。每个文件上的“ on”参数都会告诉您何时必须调用该文件。

答案 2 :(得分:0)

是的,您可以在工作流目录下有多个 yml 文件,您也可以让它们都具有相同的条件,以便它们可以并行运行。不过不推荐。 至于来自 [https://github.community/t/execution-order-for-multiple-workflows-in-one-repo/116780]

的回答 <块引用>

每个工作流都需要在 yaml 文件中定义一个事件触发器,如果​​您的操作触发了该事件,工作流将被启动,它们可以并行。