diff options
Diffstat (limited to 'tools/release/00_start_release.ts')
-rwxr-xr-x[-rw-r--r--] | tools/release/00_start_release.ts | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/tools/release/00_start_release.ts b/tools/release/00_start_release.ts index 6c0c555a0..b98fc147f 100644..100755 --- a/tools/release/00_start_release.ts +++ b/tools/release/00_start_release.ts @@ -1,20 +1,19 @@ -#!/usr/bin/env -S deno run -A --lock=tools/deno.lock.json +#!/usr/bin/env -S deno run -A --quiet --lock=tools/deno.lock.json // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. -import { DenoWorkspace } from "./deno_workspace.ts"; import { $, createOctoKit, semver } from "./deps.ts"; -$.logStep("Loading cli crate..."); -const workspace = await DenoWorkspace.load(); -const cliCrate = workspace.getCliCrate(); -const nextVersion = getNextVersion(semver.parse(cliCrate.version)!); +const currentDirPath = $.path.dirname($.path.fromFileUrl(import.meta.url)); + +$.logStep("Getting next version..."); +const nextVersion = getNextVersion(semver.parse(getCliVersion())!); $.logStep("Creating gist with instructions..."); const octoKit = createOctoKit(); const result = await octoKit.request("POST /gists", { - description: `Deno CLI v${nextVersion.toString()} release checklist`, + description: `Deno CLI v${nextVersion} release checklist`, public: false, files: { - "release_instructions.md": { + [`release_${nextVersion}.md`]: { content: buildDenoReleaseInstructionsDoc(), }, }, @@ -23,7 +22,7 @@ const result = await octoKit.request("POST /gists", { $.log("=============================================="); $.log("Created gist with instructions!"); $.log(""); -$.log(` ${result.url}`); +$.log(` ${result.data.html_url}`); $.log(""); $.log("Please fork the gist and follow the checklist."); $.log("=============================================="); @@ -41,9 +40,23 @@ function getNextVersion(originalVersion: semver.SemVer) { } function buildDenoReleaseInstructionsDoc() { - const currentDirPath = $.path.dirname($.path.fromFileUrl(import.meta.url)); const templateText = Deno.readTextFileSync( $.path.join(currentDirPath, "release_doc_template.md"), ); return `# Deno CLI ${nextVersion.toString()} Release Checklist\n\n${templateText}`; } + +function getCliVersion() { + const cargoTomlText = Deno.readTextFileSync( + $.path.join(currentDirPath, "../../cli/Cargo.toml"), + ); + const result = cargoTomlText.match(/^version\s*=\s*"([^"]+)"$/m); + if (result == null || result.length !== 2) { + $.log("Cargo.toml"); + $.log("=========="); + $.log(cargoTomlText); + $.log("=========="); + throw new Error("Could not find version in text."); + } + return result[1]; +} |