0

我想查看成功/失败作业运行的历史,以查看作业是否足够稳定以使其成为必需。有没有办法显示一个特定工作的大约 100 次先前运行的列表?目前我只看到工作流程列表,我必须点击每个工作流程才能查看此工作的状态。

4

1 回答 1

0

您可以使用Github API列出工作流运行。

在响应正文中jobs_url,您可以使用一个字段来获取所有工作流作业的详细信息。

个人工作流程示例

列出来自存储库的所有工作流运行的 URL:https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/runs

用于列出来自特定工作流运行的作业详细信息的 URL:https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/runs/1265017898/jobs

{
  "total_count": 3,
  "jobs": [
    {
      "id": 3684793326,
      "run_id": 1265017898,
      "run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/runs/1265017898",
      "node_id": "CR_kwDOFPk6vM7boXvu",
      "head_sha": "ed9977f4ced9ae12d50401a773046197a59c2575",
      "url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/jobs/3684793326",
      "html_url": "https://github.com/GuillaumeFalourd/poc-github-actions/runs/3684793326",
      "status": "completed",
      "conclusion": "success",
      "started_at": "2021-09-23T08:16:30Z",
      "completed_at": "2021-09-23T08:16:32Z",
      "name": "job2",
      "steps": [
        {
          "name": "Set up job",
          "status": "completed",
          "conclusion": "success",
          "number": 1,
          "started_at": "2021-09-23T08:16:30.000Z",
          "completed_at": "2021-09-23T08:16:31.000Z"
        },
        {
          "name": "Run Commands with WORKFLOW variable",
          "status": "completed",
          "conclusion": "skipped",
          "number": 2,
          "started_at": "2021-09-23T08:16:31.000Z",
          "completed_at": "2021-09-23T08:16:31.000Z"
        },
        {
          "name": "Run Commands with JOB variable",
          "status": "completed",
          "conclusion": "success",
          "number": 3,
          "started_at": "2021-09-23T08:16:31.000Z",
          "completed_at": "2021-09-23T08:16:32.000Z"
        },
        {
          "name": "Complete job",
          "status": "completed",
          "conclusion": "success",
          "number": 4,
          "started_at": "2021-09-23T08:16:32.000Z",
          "completed_at": "2021-09-23T08:16:32.000Z"
        }
      ],
      "check_run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/check-runs/3684793326"
    },
    {
      "id": 3684793388,
      "run_id": 1265017898,
      "run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/runs/1265017898",
      "node_id": "CR_kwDOFPk6vM7boXws",
      "head_sha": "ed9977f4ced9ae12d50401a773046197a59c2575",
      "url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/jobs/3684793388",
      "html_url": "https://github.com/GuillaumeFalourd/poc-github-actions/runs/3684793388",
      "status": "completed",
      "conclusion": "success",
      "started_at": "2021-09-23T08:16:33Z",
      "completed_at": "2021-09-23T08:16:34Z",
      "name": "job1",
      "steps": [
        {
          "name": "Set up job",
          "status": "completed",
          "conclusion": "success",
          "number": 1,
          "started_at": "2021-09-23T08:16:33.000Z",
          "completed_at": "2021-09-23T08:16:33.000Z"
        },
        {
          "name": "Run Commands with various variables",
          "status": "completed",
          "conclusion": "success",
          "number": 2,
          "started_at": "2021-09-23T08:16:33.000Z",
          "completed_at": "2021-09-23T08:16:34.000Z"
        },
        {
          "name": "Complete job",
          "status": "completed",
          "conclusion": "success",
          "number": 3,
          "started_at": "2021-09-23T08:16:34.000Z",
          "completed_at": "2021-09-23T08:16:34.000Z"
        }
      ],
      "check_run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/check-runs/3684793388"
    },
    {
      "id": 3684793444,
      "run_id": 1265017898,
      "run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/runs/1265017898",
      "node_id": "CR_kwDOFPk6vM7boXxk",
      "head_sha": "ed9977f4ced9ae12d50401a773046197a59c2575",
      "url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/actions/jobs/3684793444",
      "html_url": "https://github.com/GuillaumeFalourd/poc-github-actions/runs/3684793444",
      "status": "completed",
      "conclusion": "success",
      "started_at": "2021-09-23T08:16:32Z",
      "completed_at": "2021-09-23T08:16:33Z",
      "name": "job3",
      "steps": [
        {
          "name": "Set up job",
          "status": "completed",
          "conclusion": "success",
          "number": 1,
          "started_at": "2021-09-23T08:16:32.000Z",
          "completed_at": "2021-09-23T08:16:32.000Z"
        },
        {
          "name": "Set the value",
          "status": "completed",
          "conclusion": "success",
          "number": 2,
          "started_at": "2021-09-23T08:16:32.000Z",
          "completed_at": "2021-09-23T08:16:32.000Z"
        },
        {
          "name": "Use the value",
          "status": "completed",
          "conclusion": "success",
          "number": 3,
          "started_at": "2021-09-23T08:16:32.000Z",
          "completed_at": "2021-09-23T08:16:33.000Z"
        },
        {
          "name": "Complete job",
          "status": "completed",
          "conclusion": "success",
          "number": 4,
          "started_at": "2021-09-23T08:16:33.000Z",
          "completed_at": "2021-09-23T08:16:33.000Z"
        }
      ],
      "check_run_url": "https://api.github.com/repos/GuillaumeFalourd/poc-github-actions/check-runs/3684793444"
    }
  ]
}

使用这些数据,并实现您想要的(检查特定的作业历史记录),您可以创建一个脚本以从特定工作流中提取所有作业(使用过滤器workflow name,这里我使用10 - Environment Workflow),第一个 URL 执行循环,然后使用从第二个 URL 提取工作数据的工作流作业详细信息(使用 过滤job name,这里我们可以使用job2,因为该ids字段都是唯一的并且为每次运行生成)再次执行循环。

该解决方法可能有点冗长,并且需要对 API 的许多请求(因此由于速率限制,它并不理想),但对于我搜索的内容,目前似乎没有另一种解决方案来获得您想要的东西。

于 2021-09-23T13:52:46.233 回答