昨天,我们研究了如何在工作流步骤之一中设置自定义数据,以便在后续步骤中使用。我们通过向env上下文添加数据来做到这一点,它是一个你可以读写的属性包。

但是你不必将自己局限于仅在你的步骤中使用 env 上下文。你还可以在工作流本身中使用 env 上下文,并根据在先前步骤中设置的数据来设置条件

例如,你可能有一个每天要运行的工作流,并且你希望对该工作流在星期一的运行方式进行较小的修改。你可以使用 schedule 触发器每天运行工作流程。你可以复制该工作流程,并添加只希望在星期一运行的特殊更改。但是,呵呵,维持两个相似但只有一点点不同的工作流程是一个严重的难题。

取而代之的是,你可以查看星期几并在此基础上设置一个环境变量──在这里,我将使用bash语法运行 date 命令以打印缩写的星期几,并将其放入我的 echo 语句中,将 DAY_OF_WEEK 在我们的 env 上下文中设置变量 。然后,我将其 env.DAY_OF_WEEK 作为后续步骤的条件。

使用此配置,我将每天在世界标准时间05:00运行工作流。与今天一样,在星期一,将运行仅星期一的步骤。

image

但是在本周的剩余时间里,该步骤将被跳过。

image

这是另一个很好的例子,说明GitHub Actions如何为你提供简单的原语,你可以将它们组合在一起以创建功能强大的工作流。

原文链接:https://www.edwardthomson.com/blog/github_actions_16_conditionals_with_shared_data.html

GitHub repo: qiwihui/blog

Follow me: @qiwihui

Site: QIWIHUI