summaryrefslogtreecommitdiff
path: root/tools/release
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-08-08 19:31:45 -0400
committerGitHub <noreply@github.com>2022-08-08 19:31:45 -0400
commitaf618e3b8fb11f3947ab5ded9523cdca9cf77ced (patch)
treeba864ab239ea334531214fa43cb4003a53509d41 /tools/release
parentdaaa509ee5e79e938e166dcaf6cdd758030021be (diff)
chore: make the start_release workflow go faster (#15416)
Diffstat (limited to 'tools/release')
-rwxr-xr-x[-rw-r--r--]tools/release/00_start_release.ts33
-rw-r--r--tools/release/release_doc_template.md23
2 files changed, 36 insertions, 20 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];
+}
diff --git a/tools/release/release_doc_template.md b/tools/release/release_doc_template.md
index 9c8ee9ae1..ce874e975 100644
--- a/tools/release/release_doc_template.md
+++ b/tools/release/release_doc_template.md
@@ -1,4 +1,6 @@
-## Pre-flight checklist
+- [ ] Fork this gist and follow the instructions there.
+
+## Pre-flight
- Forks and local clones of
[`denoland/deno`](https://github.com/denoland/deno/),
@@ -13,7 +15,7 @@ release from) should be frozen and no commits should land until the release is
cut.**
- [ ] Write a message in company's #cli channel:
- `:lock: deno and deno_std are now locked (<LINK TO THIS GIST GOES HERE>)`
+ `:lock: deno and deno_std are now locked (<LINK TO THIS FORKED GIST GOES HERE>)`
## Patch release preparation
@@ -51,7 +53,7 @@ verify on GitHub that everything looks correct.
- ⛔ DO NOT create a release tag manually. That will automatically happen.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. Checkout the latest main.
2. Manually run `./_tools/release/01_bump_version.ts --minor`
@@ -67,7 +69,7 @@ verify on GitHub that everything looks correct.
- [ ] Review the draft release and then publish it.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. Tag the repo manually in the format `x.x.x`
2. Draft a new GH release by copying and pasting the release notes from
@@ -90,10 +92,10 @@ verify on GitHub that everything looks correct.
- [ ] Wait for the workflow to complete and for a pull request to be
automatically opened. Review the pull request, make any necessary changes,
and merge it.
- - ⛔ DO NOT create a release tag manually.
+ - ⛔ DO NOT create a release tag manually That will automatically happen.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. Checkout the branch the release is being made on.
2. Manually run `./tools/release/01_bump_crate_versions.ts`
@@ -110,7 +112,7 @@ verify on GitHub that everything looks correct.
1. Run it on the same branch that you used before and wait for it to complete.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. The workflow was designed to be restartable. Try restarting it.
2. If that doesn't work, then do the following:
@@ -140,7 +142,8 @@ verify on GitHub that everything looks correct.
- ⛔ Verify that:
- [ ] There are 8 assets on the release draft.
- - [ ] There are 4 zip files for this version on dl.deno.land
+ - [ ] There are 4 zip files for this version on
+ [dl.deno.land](https://console.cloud.google.com/storage/browser/dl.deno.land/release).
- [ ] The aarch64 Mac build was built from the correct branch AFTER the
version bump and has the same version as the release when doing
`deno -V` (ask someone with an M1 Mac to verify this if you don't have
@@ -154,7 +157,7 @@ verify on GitHub that everything looks correct.
- [ ] This should open a PR. Review and merge it.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. Update https://github.com/denoland/dotland/blob/main/versions.json
manually.
@@ -183,7 +186,7 @@ queries the GitHub API to determine what it needs to change and update.
- This will open a PR. Review it and merge, which will trigger a deployment.
<details>
- <summary>❌ Failure Steps</summary>
+ <summary>Failure Steps</summary>
1. Checkout a new branch for docland (e.g. `git checkout -b deno_1.17.0`).
2. Execute `deno task build`