src/GithubActionsToolHelper.ts (78 lines of code) (raw):

import * as core from '@actions/core'; import * as io from '@actions/io'; import * as exec from '@actions/exec'; export class GitHubActionsToolHelper { public getBuildId(): string { return process.env['GITHUB_RUN_ID'] || ''; } public getBuildNumber(): string { return process.env['GITHUB_RUN_NUMBER'] || ''; } public writeInfo(message: string): void { core.info(message); } public writeError(message: string): void { core.error(message); } public writeWarning(message: string): void { core.warning(message); } public writeDebug(message: string): void { core.debug(message); } public async exec(commandLine: string, args?: string[], inputOptions?: Buffer): Promise<{ exitCode: number, stdout: string, stderr: string }> { try{ let stdout = ''; let stderr = ''; const options: exec.ExecOptions = { listeners: { stdout: (data: Buffer) => { stdout += data.toString().replace(/(\r\n|\n|\r)/gm, ""); }, stderr: (data: Buffer) => { stderr += data.toString(); }, }, input: inputOptions }; let exitCode = await exec.exec(commandLine, args, options); return new Promise((resolve, reject) => { let executionResult = { exitCode: exitCode, stdout: stdout, stderr: stderr } resolve(executionResult); }); }catch(err){ throw err; } } public getInput(name: string, required?: boolean): string { const options: core.InputOptions = { required:required } return core.getInput(name, options); } public setFailed(message: string): void { core.setFailed(message); } public which(tool: string, check?: boolean): Promise<string> { return io.which(tool, check); } public getDefaultContainerAppName(containerAppName: string): string { containerAppName = `gh-action-app-${this.getBuildId()}-${this.getBuildNumber()}`; // Replace all '.' characters with '-' characters in the Container App name containerAppName = containerAppName.replace(/\./gi, "-"); this.writeInfo(`Default Container App name: ${containerAppName}`); return containerAppName; } public getTelemetryArg(): string { return `CALLER_ID=github-actions-v2`; } public getEventName(): string { return `ContainerAppsGitHubActionV2`; } public getDefaultImageRepository(): string { return `gh-action/container-app`; } }