在 Github Actions 中映射环境变量

mrh*_*997 6 github-actions

我使用创建一组环境变量的策略矩阵创建了一个 GitHub 操作作业。其中之一是machine_architecture32 或 64。

在大多数步骤中,我可以直接使用它,即通过${{ machine_architecture }}. 但是有些步骤需要像“i386”和“x86_64”这样的字符串。在 github 操作中是否有一种简单的方法来创建我可以在以下表达式中使用的地图对象:

map_object = { 32: "i386", 64: 'x86_64' }
...
${{ map_object[machine_architecture] }}
Run Code Online (Sandbox Code Playgroud)

如果没有,github 操作中解决该问题的惯用方法是什么?

PS:我知道,我可以在步骤中设置环境变量,但问题是,这些变量仅适用于以下步骤(即不适用于“运行:”标签)

mrh*_*997 27

与此同时,我找到了解决方案:

尽管 GitHub Actions 没有直接创建映射/对象的语法,但可以使用fromJson()间接完成:

${{ fromJson('{ 32: "i386", 64: "x86_64" }')[machine_architecture] }}
Run Code Online (Sandbox Code Playgroud)

这个 fromJson() 将创建一个从 int 到 string 的映射。以下 [] 运算符将 int 类型“machine_architecture”解析为字符串类型。