我有两个工作流程。一个是在推到主分支时将其部署到测试环境,另一个是在发布到生产环境时进行部署。它们有90%的相似性,代码几乎一模一样。
是否存在将重复逻辑的部分提取出来,并将其放入自己的文件/部分/片段的概念?
我有两个工作流程。一个是在推到主分支时将其部署到测试环境,另一个是在发布到生产环境时进行部署。它们有90%的相似性,代码几乎一模一样。
是否存在将重复逻辑的部分提取出来,并将其放入自己的文件/部分/片段的概念?
现在GitHub Actions中的工作流复用已经可以公开测试了:
简而言之,要重用的工作流需要使用workflow_call
触发器。调用者工作流可以直接在一个作业中使用uses
关键字引用它,如下所示的例子直接摘自GitHub页面。
jobs:
call-workflow-1:
uses: octo-org/this-repo/.github/workflows/workflow-1.yml@172239021f7ba04fe7327647b213799853a9eb89
call-workflow-2:
uses: octo-org/another-repo/.github/workflows/workflow-2.yml@v1
然而,它确实有一些限制。
目前,无法在另一个工作流YAML中重用一个工作流YAML。
这在几个地方(曾经)被讨论过:
至于您的特定问题,还没有全部失去希望。
我一直在使用Kojo - 一个从模板生成文件的命令行实用程序 - 正是为了这个目的。我有一个模板文件,我生成两个工作流程 - 一个用于阶段,一个用于生产。也许在GitHub提供更正式的解决方案之前,它会对您有所帮助。
(免责声明:我是Kojo的作者。)