From 09b50927a62731f8aa621b9d872d10d1900a60a5 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Thu, 8 Aug 2024 16:49:43 +0100 Subject: [PATCH] fix: tweak the properties of the new Wrangler output file entries for better consistency (#6440) --- .changeset/shaggy-lobsters-buy.md | 5 +++++ packages/wrangler/src/__tests__/output.test.ts | 16 ++++++++-------- packages/wrangler/src/deploy/index.ts | 5 +++-- packages/wrangler/src/output.ts | 18 ++++++++++++++++-- packages/wrangler/src/versions/api.ts | 2 +- packages/wrangler/src/versions/deploy.ts | 8 +++++--- 6 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 .changeset/shaggy-lobsters-buy.md diff --git a/.changeset/shaggy-lobsters-buy.md b/.changeset/shaggy-lobsters-buy.md new file mode 100644 index 000000000000..b901e8af1a69 --- /dev/null +++ b/.changeset/shaggy-lobsters-buy.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +fix: tweak the properties of the new Wrangler output file entries for better consistency diff --git a/packages/wrangler/src/__tests__/output.test.ts b/packages/wrangler/src/__tests__/output.test.ts index 9898ef7260b5..df5f634b1cd9 100644 --- a/packages/wrangler/src/__tests__/output.test.ts +++ b/packages/wrangler/src/__tests__/output.test.ts @@ -100,11 +100,11 @@ describe("writeOutput()", () => { log_file_path: "some/log/path.log", }); writeOutput({ - type: "deployment", + type: "deploy", version: 1, worker_name: "Worker", worker_tag: "ABCDE12345", - deployment_id: "1234", + version_id: "1234", }); const outputFile = readFileSync(WRANGLER_OUTPUT_FILE_PATH, "utf8"); @@ -117,11 +117,11 @@ describe("writeOutput()", () => { log_file_path: "some/log/path.log", }, { - type: "deployment", + type: "deploy", version: 1, worker_name: "Worker", worker_tag: "ABCDE12345", - deployment_id: "1234", + version_id: "1234", }, ]); } finally { @@ -178,11 +178,11 @@ describe("writeOutput()", () => { log_file_path: "some/log/path.log", }); writeOutput({ - type: "deployment", + type: "deploy", version: 1, worker_name: "Worker", worker_tag: "ABCDE12345", - deployment_id: "1234", + version_id: "1234", }); const outputFilePaths = readdirSync("output"); @@ -201,11 +201,11 @@ describe("writeOutput()", () => { log_file_path: "some/log/path.log", }, { - type: "deployment", + type: "deploy", version: 1, worker_name: "Worker", worker_tag: "ABCDE12345", - deployment_id: "1234", + version_id: "1234", }, ]); } finally { diff --git a/packages/wrangler/src/deploy/index.ts b/packages/wrangler/src/deploy/index.ts index 5e69eac24b52..6a1f1fe08083 100644 --- a/packages/wrangler/src/deploy/index.ts +++ b/packages/wrangler/src/deploy/index.ts @@ -372,11 +372,12 @@ export async function deployHandler( }); writeOutput({ - type: "deployment", + type: "deploy", version: 1, worker_name: name ?? null, worker_tag: workerTag, - deployment_id: deploymentId, + // Note that the `deploymentId` returned from a simple deployment is actually the versionId of the uploaded version. + version_id: deploymentId, }); await metrics.sendMetricsEvent( diff --git a/packages/wrangler/src/output.ts b/packages/wrangler/src/output.ts index b6f372a9824e..b53035a8b0eb 100644 --- a/packages/wrangler/src/output.ts +++ b/packages/wrangler/src/output.ts @@ -76,30 +76,44 @@ export type StampedOutputEntry = { timestamp: string } & OutputEntry; export interface OutputEntrySession extends OutputEntryBase<"wrangler-session"> { version: 1; + /** The semver version string taken from Wrangler's package.json. */ wrangler_version: string; + /** The arguments passed to Wrangler. */ command_line_args: string[]; + /** The absolute path to a file that contains debug logs for this Wrangler instance. */ log_file_path: string; } -export interface OutputEntryDeployment extends OutputEntryBase<"deployment"> { +export interface OutputEntryDeployment extends OutputEntryBase<"deploy"> { version: 1; + /** The name of the Worker. */ worker_name: string | null; + /** The GUID that identifies the Worker. This never changes even if the name is changed. */ worker_tag: string | null; - deployment_id: string | null; + /** A GUID that identifies this deployed version of the Worker. This version is associated with an automatically created deployment, with this version set at 100%. */ + version_id: string | null; } export interface OutputEntryVersionUpload extends OutputEntryBase<"version-upload"> { version: 1; + /** The name of the Worker. */ worker_name: string | null; + /** The GUID that identifies the Worker. This never changes even if the name is changed. */ worker_tag: string | null; + /** A GUID that identifies this uploaded, but not yet deployed, version of the Worker. This version will need to be "deployed" to receive traffic. */ version_id: string | null; } export interface OutputEntryVersionDeployment extends OutputEntryBase<"version-deploy"> { version: 1; + /** The name of the Worker. */ worker_name: string | null; + /** The GUID that identifies the Worker. This never changes even if the name is changed. */ worker_tag: string | null; + /** The ID of the gradual rollout deployment. */ + deployment_id: string; + /** The percentage of traffic that goes to each version. */ version_traffic: Map; } diff --git a/packages/wrangler/src/versions/api.ts b/packages/wrangler/src/versions/api.ts index ac8d69b17d63..c950dcf61a1b 100644 --- a/packages/wrangler/src/versions/api.ts +++ b/packages/wrangler/src/versions/api.ts @@ -107,7 +107,7 @@ export async function createDeployment( message: string | undefined, force?: boolean ) { - return await fetchResult( + return await fetchResult<{ id: string }>( `/accounts/${accountId}/workers/scripts/${workerName}/deployments${force ? "?force=true" : ""}`, { method: "POST", diff --git a/packages/wrangler/src/versions/deploy.ts b/packages/wrangler/src/versions/deploy.ts index 3f3104cfd2ef..cd6582e2e749 100644 --- a/packages/wrangler/src/versions/deploy.ts +++ b/packages/wrangler/src/versions/deploy.ts @@ -177,10 +177,10 @@ export async function versionsDeployHandler(args: VersionsDeployArgs) { const start = Date.now(); - await spinnerWhile({ + const { id: deploymentId } = await spinnerWhile({ startMessage: `Deploying ${confirmedVersionsToDeploy.length} version(s)`, - async promise() { - await createDeployment( + promise() { + return createDeployment( accountId, workerName, confirmedVersionTraffic, @@ -220,6 +220,8 @@ export async function versionsDeployHandler(args: VersionsDeployArgs) { version: 1, worker_name: workerName, worker_tag: workerTag, + // NOTE this deploymentId is related to the gradual rollout of the versions given in the version_traffic. + deployment_id: deploymentId, version_traffic: confirmedVersionTraffic, }); }