mirror of
https://github.com/golangci/golangci-lint-action.git
synced 2026-02-26 01:15:03 +00:00
Better Job Name resolution (fewer false positives), increase multi-case pause.
This commit is contained in:
parent
527060ed6f
commit
1b940a31d5
3 changed files with 18 additions and 20 deletions
13
dist/post_run/index.js
vendored
13
dist/post_run/index.js
vendored
|
|
@ -6843,24 +6843,23 @@ function resolveCheckRunId() {
|
||||||
core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`);
|
core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`);
|
||||||
const octokit = github.getOctokit(core.getInput(`github-token`, { required: true }));
|
const octokit = github.getOctokit(core.getInput(`github-token`, { required: true }));
|
||||||
const { data: workflowResponse } = yield octokit.actions
|
const { data: workflowResponse } = yield octokit.actions
|
||||||
.listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId }))
|
.listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId, status: "in_progress" }))
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
throw `Unable to fetch Workflow Job List: ${e}`;
|
throw `Unable to fetch Workflow Job List: ${e}`;
|
||||||
});
|
});
|
||||||
if (workflowResponse.jobs.length > 0) {
|
if (workflowResponse.jobs.length > 0) {
|
||||||
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs));
|
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs));
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const jobs = workflowResponse.jobs.filter((run) => run.name.includes(ctx.job));
|
const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`);
|
||||||
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose name includes '${ctx.job}'`);
|
const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name));
|
||||||
|
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`);
|
||||||
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs;
|
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs;
|
||||||
}
|
}
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const searchToken = uuid_1.v4();
|
const searchToken = uuid_1.v4();
|
||||||
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`);
|
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`);
|
||||||
yield ((ms) => {
|
// Sleep for MS, to allow Annotation to be captured and populated
|
||||||
core.info(`resolveCheckRunId() Sleeping for ${ms / 1000} Seconds`);
|
yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000);
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
||||||
})(2 * 1000);
|
|
||||||
for (const job of workflowResponse.jobs) {
|
for (const job of workflowResponse.jobs) {
|
||||||
try {
|
try {
|
||||||
const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id }));
|
const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id }));
|
||||||
|
|
|
||||||
13
dist/run/index.js
vendored
13
dist/run/index.js
vendored
|
|
@ -6853,24 +6853,23 @@ function resolveCheckRunId() {
|
||||||
core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`);
|
core.info(`Attempting to resolve current GitHub Job (${ctx.runId})`);
|
||||||
const octokit = github.getOctokit(core.getInput(`github-token`, { required: true }));
|
const octokit = github.getOctokit(core.getInput(`github-token`, { required: true }));
|
||||||
const { data: workflowResponse } = yield octokit.actions
|
const { data: workflowResponse } = yield octokit.actions
|
||||||
.listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId }))
|
.listJobsForWorkflowRun(Object.assign(Object.assign({}, ctx.repo), { run_id: ctx.runId, status: "in_progress" }))
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
throw `Unable to fetch Workflow Job List: ${e}`;
|
throw `Unable to fetch Workflow Job List: ${e}`;
|
||||||
});
|
});
|
||||||
if (workflowResponse.jobs.length > 0) {
|
if (workflowResponse.jobs.length > 0) {
|
||||||
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs));
|
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + util_1.inspect(workflowResponse.jobs));
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const jobs = workflowResponse.jobs.filter((run) => run.name.includes(ctx.job));
|
const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`);
|
||||||
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose name includes '${ctx.job}'`);
|
const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name));
|
||||||
|
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`);
|
||||||
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs;
|
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs;
|
||||||
}
|
}
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const searchToken = uuid_1.v4();
|
const searchToken = uuid_1.v4();
|
||||||
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`);
|
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`);
|
||||||
yield ((ms) => {
|
// Sleep for MS, to allow Annotation to be captured and populated
|
||||||
core.info(`resolveCheckRunId() Sleeping for ${ms / 1000} Seconds`);
|
yield ((ms) => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000);
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
||||||
})(2 * 1000);
|
|
||||||
for (const job of workflowResponse.jobs) {
|
for (const job of workflowResponse.jobs) {
|
||||||
try {
|
try {
|
||||||
const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id }));
|
const { data: annotations } = yield octokit.checks.listAnnotations(Object.assign(Object.assign({}, ctx.repo), { check_run_id: job.id }));
|
||||||
|
|
|
||||||
12
src/run.ts
12
src/run.ts
|
|
@ -251,6 +251,7 @@ async function resolveCheckRunId(): Promise<number> {
|
||||||
.listJobsForWorkflowRun({
|
.listJobsForWorkflowRun({
|
||||||
...ctx.repo,
|
...ctx.repo,
|
||||||
run_id: ctx.runId,
|
run_id: ctx.runId,
|
||||||
|
status: "in_progress",
|
||||||
})
|
})
|
||||||
.catch((e: string) => {
|
.catch((e: string) => {
|
||||||
throw `Unable to fetch Workflow Job List: ${e}`
|
throw `Unable to fetch Workflow Job List: ${e}`
|
||||||
|
|
@ -259,17 +260,16 @@ async function resolveCheckRunId(): Promise<number> {
|
||||||
if (workflowResponse.jobs.length > 0) {
|
if (workflowResponse.jobs.length > 0) {
|
||||||
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + inspect(workflowResponse.jobs))
|
core.info(`resolveCheckRunId() Found ${workflowResponse.jobs.length} Jobs:\n` + inspect(workflowResponse.jobs))
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const jobs = workflowResponse.jobs.filter((run) => run.name.includes(ctx.job))
|
const searchRegExp = new RegExp(`/^` + ctx.job.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + `(\\s+\\(|$)/`)
|
||||||
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose name includes '${ctx.job}'`)
|
const jobs = workflowResponse.jobs.filter((run) => searchRegExp.test(run.name))
|
||||||
|
core.info(`resolveCheckRunId() Found ${jobs.length} Jobs whose base name is '${ctx.job}'`)
|
||||||
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs
|
workflowResponse.jobs = jobs.length ? jobs : workflowResponse.jobs
|
||||||
}
|
}
|
||||||
if (workflowResponse.jobs.length > 1) {
|
if (workflowResponse.jobs.length > 1) {
|
||||||
const searchToken = uuidv4()
|
const searchToken = uuidv4()
|
||||||
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`)
|
core.info(`::warning::[ignore] Resolving GitHub Job with Search Token: ${searchToken}`)
|
||||||
await ((ms): Promise<void> => {
|
// Sleep for MS, to allow Annotation to be captured and populated
|
||||||
core.info(`resolveCheckRunId() Sleeping for ${ms / 1000} Seconds`)
|
await ((ms): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms)))(5 * 1000)
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms))
|
|
||||||
})(2 * 1000)
|
|
||||||
for (const job of workflowResponse.jobs) {
|
for (const job of workflowResponse.jobs) {
|
||||||
try {
|
try {
|
||||||
const { data: annotations } = await octokit.checks.listAnnotations({
|
const { data: annotations } = await octokit.checks.listAnnotations({
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue