Skip to content

Commit

Permalink
github: make attempts optional in workflowRunURL
Browse files Browse the repository at this point in the history
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
  • Loading branch information
crazy-max committed Jun 12, 2024
1 parent 33d4b44 commit fe58cc2
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
5 changes: 4 additions & 1 deletion __tests__/github.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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');
});
});

Expand Down
6 changes: 3 additions & 3 deletions src/buildx/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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, {
Expand All @@ -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 {
Expand Down
10 changes: 5 additions & 5 deletions src/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit fe58cc2

Please sign in to comment.