summaryrefslogtreecommitdiff
path: root/tools/release/helpers/deno_workspace.ts
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2021-08-30 13:35:48 -0400
committerGitHub <noreply@github.com>2021-08-30 13:35:48 -0400
commitca75752e5a9499a0a997809f02b18c2ba1ecd58d (patch)
tree9a1204e8f1445ad9f829d026a1e859c3224b6677 /tools/release/helpers/deno_workspace.ts
parent0aa6b1e79f2f4cabdb857daabc06791dfef3140b (diff)
chore: release scripts should update Cargo.lock file when bumping versions (#11879)
Diffstat (limited to 'tools/release/helpers/deno_workspace.ts')
-rw-r--r--tools/release/helpers/deno_workspace.ts35
1 files changed, 24 insertions, 11 deletions
diff --git a/tools/release/helpers/deno_workspace.ts b/tools/release/helpers/deno_workspace.ts
index f964d24b3..169394af9 100644
--- a/tools/release/helpers/deno_workspace.ts
+++ b/tools/release/helpers/deno_workspace.ts
@@ -2,12 +2,7 @@
import * as path from "https://deno.land/std@0.105.0/path/mod.ts";
import * as semver from "https://deno.land/x/semver@v1.4.0/mod.ts";
-import {
- CargoMetadata,
- CargoPackageMetadata,
- getMetadata,
- publishCrate,
-} from "./cargo.ts";
+import * as cargo from "./cargo.ts";
import { getCratesIoMetadata } from "./crates_io.ts";
import { withRetries } from "./helpers.ts";
@@ -21,10 +16,12 @@ export class DenoWorkspace {
}
static async load(): Promise<DenoWorkspace> {
- return new DenoWorkspace(await getMetadata(DenoWorkspace.rootDirPath));
+ return new DenoWorkspace(
+ await cargo.getMetadata(DenoWorkspace.rootDirPath),
+ );
}
- private constructor(metadata: CargoMetadata) {
+ private constructor(metadata: cargo.CargoMetadata) {
const crates = [];
for (const memberId of metadata.workspace_members) {
const pkg = metadata.packages.find((pkg) => pkg.id === memberId);
@@ -82,14 +79,22 @@ export class DenoWorkspace {
}
return crate;
}
+
+ build() {
+ return cargo.build(DenoWorkspace.rootDirPath);
+ }
+
+ updateLockFile() {
+ return cargo.check(DenoWorkspace.rootDirPath);
+ }
}
export class DenoWorkspaceCrate {
#workspace: DenoWorkspace;
- #pkg: CargoPackageMetadata;
+ #pkg: cargo.CargoPackageMetadata;
#isUpdatingManifest = false;
- constructor(workspace: DenoWorkspace, pkg: CargoPackageMetadata) {
+ constructor(workspace: DenoWorkspace, pkg: cargo.CargoPackageMetadata) {
this.#workspace = workspace;
this.#pkg = pkg;
}
@@ -141,7 +146,7 @@ export class DenoWorkspaceCrate {
// times before failing hard.
return await withRetries({
action: async () => {
- await publishCrate(this.directoryPath);
+ await cargo.publishCrate(this.directoryPath);
return true;
},
retryCount: 3,
@@ -149,6 +154,14 @@ export class DenoWorkspaceCrate {
});
}
+ build() {
+ return cargo.build(this.directoryPath);
+ }
+
+ updateLockFile() {
+ return cargo.check(this.directoryPath);
+ }
+
increment(part: "major" | "minor" | "patch") {
const newVersion = semver.parse(this.version)!.inc(part).toString();
return this.setVersion(newVersion);