如何分享/扩展/重用/引用 GitHub 工作流?

7

我有两个工作流程。一个是在推到主分支时将其部署到测试环境,另一个是在发布到生产环境时进行部署。它们有90%的相似性,代码几乎一模一样。

是否存在将重复逻辑的部分提取出来,并将其放入自己的文件/部分/片段的概念?


1
这个回答解决了你的问题吗?Github Actions 有模板吗 - smac89
很遗憾,现在最好的做法就是创建一个动作,但实际上几乎没有任何好处。 - smac89
2个回答

4

现在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

然而,它确实有一些限制


1

目前,无法在另一个工作流YAML中重用一个工作流YAML。

这在几个地方(曾经)被讨论过:

至于您的特定问题,还没有全部失去希望。

我一直在使用Kojo - 一个从模板生成文件的命令行实用程序 - 正是为了这个目的。我有一个模板文件,我生成两个工作流程 - 一个用于阶段,一个用于生产。也许在GitHub提供更正式的解决方案之前,它会对您有所帮助。

(免责声明:我是Kojo的作者。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接