Merge pull request #358 from crazy-max/fix-workflow-run

github: make attempts optional in workflowRunURL
This commit is contained in:
CrazyMax 2024-06-12 09:29:14 +02:00 committed by GitHub
commit ee6e7bbd95
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 9 deletions

View File

@ -97,7 +97,10 @@ describe('repository', () => {
describe('workflowRunURL', () => {
it('returns 2188748038', async () => {
expect(GitHub.workflowRunURL).toEqual('https://github.com/docker/actions-toolkit/actions/runs/2188748038/attempts/2');
expect(GitHub.workflowRunURL()).toEqual('https://github.com/docker/actions-toolkit/actions/runs/2188748038');
});
it('returns 2188748038 with attempts 2', async () => {
expect(GitHub.workflowRunURL(true)).toEqual('https://github.com/docker/actions-toolkit/actions/runs/2188748038/attempts/2');
});
});

View File

@ -131,7 +131,7 @@ export class Build {
return input;
}
try {
return core.getBooleanInput(name) ? `builder-id=${GitHub.workflowRunURL}` : 'false';
return core.getBooleanInput(name) ? `builder-id=${GitHub.workflowRunURL(true)}` : 'false';
} catch (err) {
// not a valid boolean, so we assume it's a string
return Build.resolveProvenanceAttrs(input);
@ -140,7 +140,7 @@ export class Build {
public static resolveProvenanceAttrs(input: string): string {
if (!input) {
return `builder-id=${GitHub.workflowRunURL}`;
return `builder-id=${GitHub.workflowRunURL(true)}`;
}
// parse attributes from input
const fields = parse(input, {
@ -158,7 +158,7 @@ export class Build {
}
}
// if not add builder-id attribute
return `${input},builder-id=${GitHub.workflowRunURL}`;
return `${input},builder-id=${GitHub.workflowRunURL(true)}`;
}
public static resolveCacheToAttrs(input: string, githubToken?: string): string {

View File

@ -68,10 +68,10 @@ export class GitHub {
return `${github.context.repo.owner}/${github.context.repo.repo}`;
}
static get workflowRunURL(): string {
const runID = process.env.GITHUB_RUN_ID || github.context.runId;
const runAttempt = process.env.GITHUB_RUN_ATTEMPT || 1;
return `${GitHub.serverURL}/${GitHub.repository}/actions/runs/${runID}/attempts/${runAttempt}`;
public static workflowRunURL(setAttempts?: boolean): string {
// TODO: runAttempt is not yet part of github.context but will be in a
// future release of @actions/github package: https://github.com/actions/toolkit/commit/faa425440f86f9c16587a19dfb59491253a2c92a
return `${GitHub.serverURL}/${GitHub.repository}/actions/runs/${github.context.runId}${setAttempts ? `/attempts/${process.env.GITHUB_RUN_ATTEMPT || 1}` : ''}`;
}
static get actionsRuntimeToken(): GitHubActionsRuntimeToken | undefined {
@ -191,7 +191,7 @@ export class GitHub {
const artifactId = BigInt(finalizeArtifactResp.artifactId);
core.info(`Artifact successfully finalized (${artifactId})`);
const artifactURL = `${GitHub.workflowRunURL}/artifacts/${artifactId}`;
const artifactURL = `${GitHub.workflowRunURL()}/artifacts/${artifactId}`;
core.info(`Artifact download URL: ${artifactURL}`);
return {