该$运算符尚未记录,但在示例中您可以看到它的用法。如果你熟悉的话,它似乎类似于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.ymlsetup-node v1 for setup-node v1 for这看起来像的一个例子)。然后,当您在工作中调用它时,您会这样做:
strategy:
matrix:
someVariable: [foo, bar]
steps:
- uses: my-actions/quux@v1.0
with:
someInput: ${{ matrix.someVariable }}