如何使用github操作从Github中存储库A的工作流作业触发存储库B(下游作业)中的工作流作业

时间:2021-05-07 07:11:16

标签: git github github-actions


我要求有 3 个 GitHub 存储库。
回购 A
回购 B
回购 C

当手动执行 Repo A 的参数化 job1 时工作流开始(使用 workflow_disptach)。
传递了四个参数。
这个 job1 触发了 Repo B(job2) 和 Repo C(job3)->(downstream jobs) 的另外两个作业
成功执行 Repo B & C 的作业后,应执行带有所有 4 个参数的 Repo A 的 job1(shell 脚本)。

如何在不同的存储库中触发作业工作流?
如何将代码签出到 GITHUB_WORKSPACE env 以外的其他位置?
如何在 Github 中使用 Github Actions 实现上述用例?

1 个答案:

答案 0 :(得分:0)

如何在不同存储库中触发作业工作流?

正如 soltex 在评论中所说,您可以使用 dispatches 在使用 repository_dispatch 触发器的任何存储库上触发工作流。

Github API repositories documentation

以下是使用 Github API 发送 dispatch event 的工作流示例:triggered - receiver

如何在 Github 中使用 Github Actions 实现上述用例?

Github Marketplace 上有一些操作可以更轻松地分派事件。

以下是执行操作的工作流示例:triggered - receiver

如何将代码检出到 GITHUB_WORKSPACE env 以外的其他位置?

如果在同一个存储库中,一旦您使用 actions/checkout 访问 GITHUB_WORKSPACE,您可以使用 shell 命令(例如:cd path/to/specific/file)导航存储库以访问您想要的文件夹或文件。

现在,如果您想访问另一个存储库中的特定文件或文件夹,您必须将其克隆到您的工作流程中。