该$
运算符尚未记录,但在示例中您可以看到它的用法。如果你熟悉的话,它似乎类似于MongoDB 的$
operator 。在 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 不是 的有效值runs-on
),但它无法知道有效值是什么的version
输入setup-node
。(顺便说一句,从 2019 年 8 月 14 日起已重命名为node-version
,但文档片段尚未更新)。配置文件中没有action.yml
列出输入的有效值,只有名称和描述。
所以由于这个文档片段不能按原样工作,我猜它会在某个时候更新,说这$
是当前选定的矩阵变量集,并且${{ variableName }}
(例如,${{ matrix.node }}
或${{ matrix.os }}
)是你应该放入的使用这些变量的作业配置部分。
至于您问题的第二部分,“自定义操作如何与构建矩阵选项一起使用?”,我认为它看起来像一个正常操作,将其输入记录在action.yml
(请参阅for action.yml
setup-node v1 for setup-node v1 for这看起来像的一个例子)。然后,当您在工作中调用它时,您会这样做:
strategy:
matrix:
someVariable: [foo, bar]
steps:
- uses: my-actions/quux@v1.0
with:
someInput: ${{ matrix.someVariable }}