diff --git a/dist/post_run/index.js b/dist/post_run/index.js index fd95523..60c74de 100644 --- a/dist/post_run/index.js +++ b/dist/post_run/index.js @@ -6842,25 +6842,27 @@ function resolveCheckRunId() { try { core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`); const octokit = github.getOctokit(core.getInput(`github-token`, { required: true })); - const { data: workflowResponse } = yield octokit.actions - .listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId, status: "in_progress" })) + let workflowJobs = (yield octokit.actions + .listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId })) .catch((e) => { throw `Unable to fetch Workflow Job List: ${e}`; - }); - if (workflowResponse.jobs.length > 0) { - core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs)); - if (workflowResponse.jobs.length > 1) { - const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`); - const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name)); + })).data.jobs.filter((job) => job.status === `in_progress`); + if (workflowJobs.length > 0) { + core.info(`resolveCheckRunId() Found ${workflowJobs.length} Jobs:\n` + util_1.inspect(workflowJobs)); + if (workflowJobs.length > 1) { + const searchRegExp = new RegExp(`^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)`); + const jobs = workflowJobs.filter((job) => searchRegExp.test(job.name)); core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`); - workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs; + workflowJobs = jobs.length ? jobs : workflowJobs; } - if (workflowResponse.jobs.length > 1) { + if (workflowJobs.length > 1) { const searchToken = uuid_1.v4(); core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`); + const startedAt = Date.now(); // Sleep for MS, to allow Annotation to be captured and populated - yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000); - for (const job of workflowResponse.jobs) { + yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(10 * 1000); + core.info(`Slept for ${Date.now() - startedAt}ms`); + for (const job of workflowJobs) { try { const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id })); core.info(`resolveCheckRunId() Found ${annotations.length} Annotations for Job '${job.id}':\n` + util_1.inspect(annotations)); @@ -6879,8 +6881,8 @@ function resolveCheckRunId() { } core.info(`resolveCheckRunId() Finished looking for Search Token`); } - else if (workflowResponse.jobs[0]) { - jobId = workflowResponse.jobs[0].id; + else if (workflowJobs[0]) { + jobId = workflowJobs[0].id; } else { throw `Unable to resolve GitHub Job`; diff --git a/dist/run/index.js b/dist/run/index.js index 1a2727d..d48ba9c 100644 --- a/dist/run/index.js +++ b/dist/run/index.js @@ -6852,25 +6852,27 @@ function resolveCheckRunId() { try { core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`); const octokit = github.getOctokit(core.getInput(`github-token`, { required: true })); - const { data: workflowResponse } = yield octokit.actions - .listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId, status: "in_progress" })) + let workflowJobs = (yield octokit.actions + .listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId })) .catch((e) => { throw `Unable to fetch Workflow Job List: ${e}`; - }); - if (workflowResponse.jobs.length > 0) { - core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs)); - if (workflowResponse.jobs.length > 1) { - const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`); - const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name)); + })).data.jobs.filter((job) => job.status === `in_progress`); + if (workflowJobs.length > 0) { + core.info(`resolveCheckRunId() Found ${workflowJobs.length} Jobs:\n` + util_1.inspect(workflowJobs)); + if (workflowJobs.length > 1) { + const searchRegExp = new RegExp(`^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)`); + const jobs = workflowJobs.filter((job) => searchRegExp.test(job.name)); core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`); - workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs; + workflowJobs = jobs.length ? jobs : workflowJobs; } - if (workflowResponse.jobs.length > 1) { + if (workflowJobs.length > 1) { const searchToken = uuid_1.v4(); core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`); + const startedAt = Date.now(); // Sleep for MS, to allow Annotation to be captured and populated - yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000); - for (const job of workflowResponse.jobs) { + yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(10 * 1000); + core.info(`Slept for ${Date.now() - startedAt}ms`); + for (const job of workflowJobs) { try { const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id })); core.info(`resolveCheckRunId() Found ${annotations.length} Annotations for Job '${job.id}':\n` + util_1.inspect(annotations)); @@ -6889,8 +6891,8 @@ function resolveCheckRunId() { } core.info(`resolveCheckRunId() Finished looking for Search Token`); } - else if (workflowResponse.jobs[0]) { - jobId = workflowResponse.jobs[0].id; + else if (workflowJobs[0]) { + jobId = workflowJobs[0].id; } else { throw `Unable to resolve GitHub Job`; diff --git a/src/run.ts b/src/run.ts index 31376aa..f30da44 100644 --- a/src/run.ts +++ b/src/run.ts @@ -247,30 +247,33 @@ async function resolveCheckRunId(): Promise { try { core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`) const octokit = github.getOctokit(core.getInput(`github-token`, { required: true })) - const { data: workflowResponse } = await octokit.actions - .listJobsForWorkflowRun({ - ...ctx.repo, - run_id: ctx.runId, - status: "in_progress", - }) - .catch((e: string) => { - throw `Unable to fetch Workflow Job List: ${e}` - }) + let workflowJobs = ( + await octokit.actions + .listJobsForWorkflowRun({ + ...ctx.repo, + run_id: ctx.runId, + }) + .catch((e: string) => { + throw `Unable to fetch Workflow Job List: ${e}` + }) + ).data.jobs.filter((job) => job.status === `in_progress`) - if (workflowResponse.jobs.length > 0) { - core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + inspect(workflowResponse.jobs)) - if (workflowResponse.jobs.length > 1) { - const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`) - const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name)) + if (workflowJobs.length > 0) { + core.info(`resolveCheckRunId() Found ${workflowJobs.length} Jobs:\n` + inspect(workflowJobs)) + if (workflowJobs.length > 1) { + const searchRegExp = new RegExp(`^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)`) + const jobs = workflowJobs.filter((job) => searchRegExp.test(job.name)) core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`) - workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs + workflowJobs = jobs.length ? jobs : workflowJobs } - if (workflowResponse.jobs.length > 1) { + if (workflowJobs.length > 1) { const searchToken = uuidv4() core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`) + const startedAt = Date.now() // Sleep for MS, to allow Annotation to be captured and populated - await ((ms): Promise => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000) - for (const job of workflowResponse.jobs) { + await ((ms): Promise => new Promise((resolve) => setTimeout(resolve, ms)))(10 * 1000) + core.info(`Slept for ${Date.now() - startedAt}ms`) + for (const job of workflowJobs) { try { const { data: annotations } = await octokit.checks.listAnnotations({ ...ctx.repo, @@ -294,8 +297,8 @@ async function resolveCheckRunId(): Promise { } } core.info(`resolveCheckRunId() Finished looking for Search Token`) - } else if (workflowResponse.jobs[0]) { - jobId = workflowResponse.jobs[0].id + } else if (workflowJobs[0]) { + jobId = workflowJobs[0].id } else { throw `Unable to resolve GitHub Job` }