我试图为矩阵中每个失败的作业单独上传日志。每组日志都需要基于作业矩阵具有一个名称,否则它们会互相覆盖,我就无法确定产生结果工件的作业。
我尝试打印所有上下文:
name: My workflow
on:
pull_request:
types: [opened, synchronize]
jobs:
my-job:
name: OS ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-18.04
- ubuntu-20.04
steps:
- run: echo "${{ toJSON(github) }}"
- run: echo "${{ toJSON(env) }}"
- run: echo "${{ toJSON(job) }}"
- run: echo "${{ toJSON(steps) }}"
- run: echo "${{ toJSON(runner) }}"
- run: echo "${{ toJSON(secrets) }}"
- run: echo "${{ toJSON(strategy) }}"
- run: echo "${{ toJSON(matrix) }}"
- run: echo "${{ toJSON(needs) }}"
- run: echo "${{ toJSON(inputs) }}"
这些中没有包含在运行工作流时显示的任务名称。
jobs.*.name
。 - l0b0jobs.*.name
?你正在使用作业名称的矩阵,因此每个作业执行中它将始终是唯一的。如果您使用它上传日志,则对于此工作流运行它将始终是唯一的。现在,如果您想使它们在运行工作流多次时也保持唯一,那么将时间戳添加到日志文件名(以及 JOB NAME 变量)是否可以解决问题?关于答案,我说的仍然成立,您目前无法从运行器上下文中获取job_name
,只能获取job_id
。没有任何变通方法,无论是否使用矩阵都不可能。 - GuiFalourdrun_id
(${{ github.run_id}}
) 代替timestamp
,因为它对于每个运行也是唯一的。这个组合键在你的情况下会更加完美。 - GuiFalourd