Github Action如何使用矩阵和可重复使用的工作流程?

5
我一直在查阅 Github Action 文档,了解可重用工作流,并试图组合矩阵的链式结构。
我的伪代码工作流大致如下:
- 任务1:找出路径下发生变化的文件,并将它们输出为 JSON。 - 任务2:将文件列表作为矩阵迭代,并调用另一个工作流。 - 任务3(在另一个工作流中):仅使用另一个矩阵定义与单个输入值结合使用以执行一组步骤。
这似乎是一个相对简单的目标。但是,看起来可重用工作流调用不支持“strategy”。如果我错了,请纠正我。
2个回答

7

虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面发生更改可能会变得无效。 - Tyler2P

4

编辑:自从发布此内容以来,情况已经发生变化。现在有一个被接受的答案。

似乎无法将矩阵(策略)与可重复使用的操作一起使用,至少目前是这样。请参阅GH Actions文档

考虑到可重复使用的操作昨天刚刚推出, 我预计这可能会发生改变。请注意,公告中显示了一个带有matrix的示例... 而替代方案则巧妙地省略了所谓的内容。

据我理解,这个限制可以重新表述为“你不能编写一个C风格的循环” - 你不能让调用者工作流在可重用的操作调用上使用strategy。然而,你可以反转关系:将strategy移入被重用的工作流(被调用者)。然后,你还可以将矩阵以JSON编码的字符串形式传递给inputs。请参考关于这个变通方法的讨论
对我来说,这绝对不够好,但请自行判断。

1
讨论链接现已失效。GitHub文档在https://docs.github.com/en/enterprise-cloud@latest/actions/learn-github-actions/expressions#example-returning-a-json-object中描述了此解决方法。 - Jan Molak

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