Github-Action-Day13:条件表达式(Conditionals)

这是我的 Github Action Advent Calendar 的第十三天的内容,如果您想要了解更多已经发布的 tips 信息,查看此处的 索引

昨天我们了解到,当您运行一个工作流时,可以使用其中大量的数据信息。您可以在 steps 参数中的 run 参数中使用这些数据,并将其与您的构建脚本,部属步骤或者是仓库的自动化操作一起使用。当然您也可以在工作流(workflow) 内部使用它。

而利用这些数据的一个有用的方式就是使用这些数据来有 有条件地运行工作流的 steps

例如,在执行一个 step 之前,你可能希望检查一下您的工作流运行所在的仓库名称。如果您正在一个开源项目中工作,这通常很有用,由于 fork 您的仓库的人拥有的 token 具有不同的权限,你可以对 fork 的项目跳过发布的步骤。

这允许 fork 的仓库仍然可以执行(和原仓库)相同的 CI 构建方式,确保了这个工作流在运行构建以及测试通过时的成功,而不会因为在发布的 steps 中的权限问题而失败。

您可以设置一个条件确保您(的工作流运行)在正确的仓库中,并运行在 CI 构建上 (来自 push 事件)。

现在,当这个工作流在 fork 的情况下运行,Publish Documentation 步骤会被取消。

image-20210825201536662

使用条件允许您构建更高级的工作流,这些工作流可以在多个分支以及 fork 中共享,但这些工作流中有一些步骤是给一些独特的触发器或者环境量身定制的。