summaryrefslogtreecommitdiff
path: root/tools/release/02_publish_crates.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tools/release/02_publish_crates.ts')
-rw-r--r--tools/release/02_publish_crates.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/release/02_publish_crates.ts b/tools/release/02_publish_crates.ts
new file mode 100644
index 000000000..1bb02f460
--- /dev/null
+++ b/tools/release/02_publish_crates.ts
@@ -0,0 +1,21 @@
+#!/usr/bin/env -S deno run --allow-read --allow-write --allow-run=cargo --allow-net=crates.io
+// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
+import { DenoWorkspace } from "./deno_workspace.ts";
+import { getCratesPublishOrder } from "./deps.ts";
+
+const workspace = await DenoWorkspace.load();
+const cliCrate = workspace.getCliCrate();
+
+const dependencyCrates = getCratesPublishOrder(workspace.getDependencyCrates());
+
+try {
+ for (const [i, crate] of dependencyCrates.entries()) {
+ await crate.publish();
+ console.log(`Published ${i + 1} of ${dependencyCrates.length} crates.`);
+ }
+
+ await cliCrate.publish();
+} finally {
+ // system beep to notify error or completion
+ console.log("\x07");
+}