我可以有多个 GitHub 个 Actions 工作流程文件吗?
Can I have multiple GitHub Actions workflow files?
我可以有多个工作流程文件吗?
我有一些使用 GitHub Actions 的回购,它们工作得很好!在我的特定用例中,我在 "push," 自动部署到我的开发环境,并在 "release." 自动部署到生产环境。这是两个独立的工作流程。
我知道我可以将这两个工作流程放在同一个 main.workflow 文件中,这样就可以正常工作,但我更愿意将它们完全放在单独的工作流程文件中。例如,是否可以有一个 dev.workflow 文件和一个 prod.workflow 文件?
我已经尝试创建 dev.workflow 和 prod.workflow 文件,但它们似乎没有被 Actions 拾取。似乎需要 main.workflow 文件。如果是这样,有没有办法将其他工作流文件导入 main.workflow?
自从提出这个问题后,GitHub 对工作流程进行了一些更改。它们现在是用 YAML 语法而不是 HCL 编写的,并且不是存储在 .github/main.workflow
文件中,而是存储在 .github/workflows
目录中。 documentation 表示 "You must store workflow files"(注意复数形式)"in the .github/workflows
directory of your repository."
因此,一旦您将 main.workflow
文件移植到 YAML 语法,您应该能够按照您想要的方式将每个工作流存储在一个文件中。
.github/workflows
文件夹中可以有多个文件。所有文件都将被读取并 运行 作为独立测试。每个文件上的 'on' 参数将告知何时必须调用它。
按照您的想法,您可以:
dev.workflow.yml
- 运行 可能进行某种测试(仅在开发分支上推送时)
name: Dev Workflow - Test and check thing
on:
push:
branches:
- dev
jobs:
...
prod.workflow.yml
- 构建和部署您的项目(仅在 master 分支上,当 PR 关闭时)
name: Master Workflow - Build and deploy to production
on:
pull_request:
types: closed
branches:
- master
jobs:
...
是的,你可以在 workflow 目录下有多个 yml 文件,你也可以让它们都具有相同的条件,这样它们就可以 运行 并行。但是不推荐。
关于[https://github.community/t/execution-order-for-multiple-workflows-in-one-repo/116780]
的回答
Every workflow needs an event trigger defined in the yaml file, if your operation triggers the event, the workflow will be started, they can be in parallel.
我可以有多个工作流程文件吗?
我有一些使用 GitHub Actions 的回购,它们工作得很好!在我的特定用例中,我在 "push," 自动部署到我的开发环境,并在 "release." 自动部署到生产环境。这是两个独立的工作流程。
我知道我可以将这两个工作流程放在同一个 main.workflow 文件中,这样就可以正常工作,但我更愿意将它们完全放在单独的工作流程文件中。例如,是否可以有一个 dev.workflow 文件和一个 prod.workflow 文件?
我已经尝试创建 dev.workflow 和 prod.workflow 文件,但它们似乎没有被 Actions 拾取。似乎需要 main.workflow 文件。如果是这样,有没有办法将其他工作流文件导入 main.workflow?
自从提出这个问题后,GitHub 对工作流程进行了一些更改。它们现在是用 YAML 语法而不是 HCL 编写的,并且不是存储在 .github/main.workflow
文件中,而是存储在 .github/workflows
目录中。 documentation 表示 "You must store workflow files"(注意复数形式)"in the .github/workflows
directory of your repository."
因此,一旦您将 main.workflow
文件移植到 YAML 语法,您应该能够按照您想要的方式将每个工作流存储在一个文件中。
.github/workflows
文件夹中可以有多个文件。所有文件都将被读取并 运行 作为独立测试。每个文件上的 'on' 参数将告知何时必须调用它。
按照您的想法,您可以:
dev.workflow.yml
- 运行 可能进行某种测试(仅在开发分支上推送时)
name: Dev Workflow - Test and check thing
on:
push:
branches:
- dev
jobs:
...
prod.workflow.yml
- 构建和部署您的项目(仅在 master 分支上,当 PR 关闭时)
name: Master Workflow - Build and deploy to production
on:
pull_request:
types: closed
branches:
- master
jobs:
...
是的,你可以在 workflow 目录下有多个 yml 文件,你也可以让它们都具有相同的条件,这样它们就可以 运行 并行。但是不推荐。 关于[https://github.community/t/execution-order-for-multiple-workflows-in-one-repo/116780]
的回答Every workflow needs an event trigger defined in the yaml file, if your operation triggers the event, the workflow will be started, they can be in parallel.