()
| 33 | }; |
| 34 | |
| 35 | const run = (): void => { |
| 36 | const args = process.argv.slice(2); |
| 37 | const tagEnv = readOption(args, "--tag-env"); |
| 38 | const versionEnv = readOption(args, "--version-env"); |
| 39 | const writeEnv = readOption(args, "--write-env"); |
| 40 | const outputName = readOption(args, "--output"); |
| 41 | |
| 42 | if (tagEnv && versionEnv) { |
| 43 | throw new Error("Use either --tag-env or --version-env, not both"); |
| 44 | } |
| 45 | if (!tagEnv && !versionEnv) { |
| 46 | throw new Error("Expected --tag-env or --version-env"); |
| 47 | } |
| 48 | |
| 49 | const tag = tagEnv |
| 50 | ? validateReleaseTag(readEnv(tagEnv)) |
| 51 | : `v${validateReleaseVersion(readEnv(versionEnv!))}`; |
| 52 | |
| 53 | appendGitHubFile(process.env.GITHUB_ENV, writeEnv ? `${writeEnv}=${tag}` : ""); |
| 54 | appendGitHubFile(process.env.GITHUB_OUTPUT, outputName ? `${outputName}=${tag}` : ""); |
| 55 | console.log(`Validated release tag ${tag}`); |
| 56 | }; |
| 57 | |
| 58 | const readOption = (args: ReadonlyArray<string>, name: string): string | undefined => { |
| 59 | const index = args.indexOf(name); |
no test coverage detected