GitHub Actions矩阵任务如何使用索引而非矩阵值命名
GitHub Actions原生没有直接获取单个数组类型矩阵元素索引的matrix.range.index语法,但有两种简单的实现方案可以满足按序号命名任务的需求:
方案一:使用strategy.job-index内置变量(改动最小)
GitHub Actions提供了内置上下文变量strategy.job-index,表示当前矩阵任务在所有生成任务中的序号,默认从0开始计数,你只需在job配置中新增name字段,无需修改原有矩阵和运行逻辑:
jobs: functional: # 加1即可得到从1开始的序号 name: functional-${{ strategy.job-index + 1 }} # 以下原有配置完全保留 strategy: matrix: range: - -e FT_FROM_IX=0 -e FT_TO_IX=300 - -e FT_FROM_IX=301 -e FT_TO_IX=600 - -e FT_FROM_IX=601 -e FT_TO_IX=900 - -e FT_FROM_IX=901 -e FT_TO_IX=1200 - -e FT_FROM_IX=1201 steps: - uses: actions/checkout@v2 - name: Run functional test run: | docker run --network host -t --rm ${{ matrix.range }} -v $(pwd):/opt/fiware-orion ${{ env.TEST_IMAGE_NAME }} build -miqts functional
方案二:调整矩阵为对象数组结构(灵活性更高)
如果需要更可控的序号与参数绑定关系,可以把矩阵的range从字符串数组改成对象数组,每个元素同时包含自定义序号和运行参数:
jobs: functional: name: functional-${{ matrix.range.id }} strategy: matrix: range: - id: 1 args: -e FT_FROM_IX=0 -e FT_TO_IX=300 - id: 2 args: -e FT_FROM_IX=301 -e FT_TO_IX=600 - id: 3 args: -e FT_FROM_IX=601 -e FT_TO_IX=900 - id: 4 args: -e FT_FROM_IX=901 -e FT_TO_IX=1200 - id: 5 args: -e FT_FROM_IX=1201 steps: - uses: actions/checkout@v2 - name: Run functional test run: | docker run --network host -t --rm ${{ matrix.range.args }} -v $(pwd):/opt/fiware-orion ${{ env.TEST_IMAGE_NAME }} build -miqts functional
该方案的优势是序号和参数的对应关系完全固定,后续调整矩阵参数顺序也不会出现序号错乱的问题。
内容的提问来源于stack exchange,提问作者fgalan
相关产品推荐
相关产品推荐

