runs-on: $
strategy:
matrix:
node: [6, 8, 10]
os: [ubuntu-16.04, ubuntu-18.04]
steps:
- uses: actions/setup-node@v1
with:
version: $
此代码段表示“ setup-node”操作在六种不同的配置中运行(在两个不同的os版本上有三个不同的节点版本)。
但是,我不知道$实际如何工作。 runs-on
如何获得os
数组中填充的值? version
键如何获取填充的node
数组的值?
与构建矩阵选项一起使用的自定义操作看起来如何?
答案 0 :(得分:2)
$
运算符尚未记录,但是在示例中您可以看到它的用法。如果您熟悉MongoDB's $
operator,它似乎与the action.yml
for setup-node v1类似。在MongoDB中,显然在这里,$
代表“列表中当前元素的值”。例如,文档片段将创建六个作业,其中三个在Ubuntu 16.04上运行,三个在Ubuntu 18.04上运行。
文档还不够完善,将来引用的文档片段中使用$
运算符的方式将会改变。该代码段应该是:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node: [6, 8, 10]
os: [ubuntu-16.04, ubuntu-18.04]
steps:
- uses: actions/setup-node@v1
with:
version: ${{ matrix.node }}
尽管GitHub Actions解析器很容易找出应该将哪些字符串列表分配给runs-on
参数(因为6、8和10对{{1 }}),它不知道runs-on
的{{1}}输入的有效值是多少。 (自2019年14月14日起,BTW已重命名为version
,但文档摘要尚未更新)。 setup-node
配置文件中没有任何内容列出输入的有效值,仅列出名称和描述。
因此,由于此文档摘要无法按原样工作,因此我猜测它会在某个时候更新为node-version
是所选矩阵变量的当前集合,而{{1 }}(例如action.yml
或$
)应该放在作业配置中使用这些变量的部分中。
对于您问题的第二部分,“自定义操作看起来如何与构建矩阵选项一起工作?”,我认为它看起来像一个普通操作,并在${{ variableName }}
中记录了其输入(请参阅https://developers.google.com/ar/reference/java/sceneform/reference/com/google/ar/sceneform/rendering/ViewRenderable,以获取有关该外观的示例)。然后,当您在工作中调用它时,您会这样做:
${{ matrix.node }}