summaryrefslogtreecommitdiff
path: root/tools/release/00_start_release.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tools/release/00_start_release.ts')
-rwxr-xr-x[-rw-r--r--]tools/release/00_start_release.ts33
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];
+}