Skip to content

Commit c590603

Browse files
committed
wrangler: feat: do not show subdomain status mismatch warnings on first deploy
These warnings are just noise on a first deploy, not really necessary.
1 parent 521e464 commit c590603

File tree

6 files changed

+148
-8
lines changed

6 files changed

+148
-8
lines changed

.changeset/real-regions-crash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"wrangler": patch
3+
---
4+
5+
Do not show subdomain status mismatch warnings on first deploy.
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
import dedent from "ts-dedent";
2+
import { afterAll, beforeAll, describe, expect, it } from "vitest";
3+
import { CLOUDFLARE_ACCOUNT_ID } from "./helpers/account-id";
4+
import { WranglerE2ETestHelper } from "./helpers/e2e-wrangler-test";
5+
import { generateResourceName } from "./helpers/generate-resource-name";
6+
import { normalizeOutput } from "./helpers/normalize";
7+
8+
const TIMEOUT = 50_000;
9+
const workerName = generateResourceName();
10+
const normalize = (str: string) =>
11+
normalizeOutput(str, {
12+
[CLOUDFLARE_ACCOUNT_ID]: "CLOUDFLARE_ACCOUNT_ID",
13+
}).replaceAll(/^Author:.*$/gm, "Author: [email protected]");
14+
15+
describe.skipIf(!CLOUDFLARE_ACCOUNT_ID)("deploy", { timeout: TIMEOUT }, () => {
16+
let helper: WranglerE2ETestHelper;
17+
beforeAll(async () => {
18+
helper = new WranglerE2ETestHelper();
19+
});
20+
21+
describe("subdomain warnings", () => {
22+
beforeAll(async () => {
23+
await helper.seed({
24+
"wrangler.toml": dedent`
25+
name = "${workerName}"
26+
main = "src/index.ts"
27+
compatibility_date = "2023-01-01"
28+
`,
29+
"src/index.ts": dedent`
30+
export default {
31+
fetch(request) {
32+
return new Response("Hello World!")
33+
}
34+
}
35+
`,
36+
"package.json": dedent`
37+
{
38+
"name": "${workerName}",
39+
"version": "0.0.0",
40+
"private": true
41+
}
42+
`,
43+
});
44+
});
45+
46+
afterAll(async () => {
47+
await helper.run(`wrangler delete`);
48+
});
49+
50+
it("omit subdomain warnings on 1st deploy", async () => {
51+
const deploy = await helper.run("wrangler deploy");
52+
expect(normalize(deploy.stdout)).toMatchInlineSnapshot(`
53+
"Total Upload: xx KiB / gzip: xx KiB
54+
Uploaded tmp-e2e-worker-00000000-0000-0000-0000-000000000000 (TIMINGS)
55+
Deployed tmp-e2e-worker-00000000-0000-0000-0000-000000000000 triggers (TIMINGS)
56+
https://tmp-e2e-worker-00000000-0000-0000-0000-000000000000.SUBDOMAIN.workers.dev
57+
Current Version ID: 00000000-0000-0000-0000-000000000000"
58+
`);
59+
expect(normalize(deploy.stderr)).toMatchInlineSnapshot(`""`);
60+
});
61+
62+
it("show subdomain warnings on 2nd deploy, remote enabled", async () => {
63+
// Set remote state using `wrangler triggers deploy`.
64+
await helper.seed({
65+
"wrangler.toml": dedent`
66+
name = "${workerName}"
67+
main = "src/index.ts"
68+
compatibility_date = "2023-01-01"
69+
workers_dev = true
70+
preview_urls = true
71+
`,
72+
});
73+
await helper.run("wrangler triggers deploy");
74+
// Remove `workers_dev` and `preview_urls` props, and redeploy.
75+
await helper.seed({
76+
"wrangler.toml": dedent`
77+
name = "${workerName}"
78+
main = "src/index.ts"
79+
compatibility_date = "2023-01-01"
80+
`,
81+
});
82+
const deploy = await helper.run("wrangler deploy");
83+
expect(normalize(deploy.stdout)).toMatchInlineSnapshot(`
84+
"Total Upload: xx KiB / gzip: xx KiB
85+
Uploaded tmp-e2e-worker-00000000-0000-0000-0000-000000000000 (TIMINGS)
86+
Deployed tmp-e2e-worker-00000000-0000-0000-0000-000000000000 triggers (TIMINGS)
87+
https://tmp-e2e-worker-00000000-0000-0000-0000-000000000000.SUBDOMAIN.workers.dev
88+
Current Version ID: 00000000-0000-0000-0000-000000000000"
89+
`);
90+
expect(normalize(deploy.stderr)).toMatchInlineSnapshot(`
91+
"▲ [WARNING] Worker has preview URLs enabled, but 'preview_urls' is not in the config.
92+
Using default config 'preview_urls = false', current status will be overwritten."
93+
`);
94+
});
95+
96+
it("show subdomain warnings on 3rd deploy, remote disabled", async () => {
97+
// Set remote state using `wrangler triggers deploy`.
98+
await helper.seed({
99+
"wrangler.toml": dedent`
100+
name = "${workerName}"
101+
main = "src/index.ts"
102+
compatibility_date = "2023-01-01"
103+
workers_dev = false
104+
preview_urls = false
105+
`,
106+
});
107+
await helper.run("wrangler triggers deploy");
108+
// Remove `workers_dev` and `preview_urls` props, and redeploy.
109+
await helper.seed({
110+
"wrangler.toml": dedent`
111+
name = "${workerName}"
112+
main = "src/index.ts"
113+
compatibility_date = "2023-01-01"
114+
`,
115+
});
116+
const deploy = await helper.run("wrangler deploy");
117+
expect(normalize(deploy.stdout)).toMatchInlineSnapshot(`
118+
"Total Upload: xx KiB / gzip: xx KiB
119+
Uploaded tmp-e2e-worker-00000000-0000-0000-0000-000000000000 (TIMINGS)
120+
Deployed tmp-e2e-worker-00000000-0000-0000-0000-000000000000 triggers (TIMINGS)
121+
https://tmp-e2e-worker-00000000-0000-0000-0000-000000000000.SUBDOMAIN.workers.dev
122+
Current Version ID: 00000000-0000-0000-0000-000000000000"
123+
`);
124+
expect(normalize(deploy.stderr)).toMatchInlineSnapshot(`
125+
"▲ [WARNING] Worker has workers.dev disabled, but 'workers_dev' is not in the config.
126+
Using default config 'workers_dev = true', current status will be overwritten."
127+
`);
128+
});
129+
});
130+
});

packages/wrangler/src/__tests__/deploy.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6912,7 +6912,7 @@ addEventListener('fetch', event => {});`
69126912
expect(std.warn).toMatchInlineSnapshot(`
69136913
"▲ [WARNING] Worker has workers.dev disabled, but 'workers_dev' is not in the config.
69146914
6915-
Using fallback value 'workers_dev = true'.
6915+
Using default config 'workers_dev = true', current status will be overwritten.
69166916
69176917
"
69186918
`);
@@ -6939,7 +6939,7 @@ addEventListener('fetch', event => {});`
69396939
expect(std.warn).toMatchInlineSnapshot(`
69406940
"▲ [WARNING] Worker has preview URLs enabled, but 'preview_urls' is not in the config.
69416941
6942-
Using fallback value 'preview_urls = false'.
6942+
Using default config 'preview_urls = false', current status will be overwritten.
69436943
69446944
"
69456945
`);

packages/wrangler/src/deploy/deploy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,6 +1115,7 @@ See https://developers.cloudflare.com/workers/platform/compatibility-dates for m
11151115
// deploy triggers
11161116
const targets = await triggersDeploy({
11171117
...props,
1118+
firstDeploy: !workerExists,
11181119
routes: allDeploymentRoutes,
11191120
});
11201121

packages/wrangler/src/triggers/deploy.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type Props = {
3030
legacyEnv: boolean | undefined;
3131
dryRun: boolean | undefined;
3232
assetsOptions: AssetsOptions | undefined;
33+
firstDeploy: boolean;
3334
};
3435

3536
export default async function triggersDeploy(
@@ -90,7 +91,8 @@ export default async function triggersDeploy(
9091
envName,
9192
workerUrl,
9293
routes,
93-
deployments
94+
deployments,
95+
props.firstDeploy
9496
);
9597

9698
if (!wantWorkersDev && workersDevInSync && routes.length !== 0) {
@@ -315,7 +317,8 @@ async function subdomainDeploy(
315317
envName: string,
316318
workerUrl: string,
317319
routes: Route[],
318-
deployments: Array<Promise<string[]>>
320+
deployments: Array<Promise<string[]>>,
321+
firstDeploy: boolean
319322
) {
320323
const { config } = props;
321324

@@ -338,22 +341,22 @@ async function subdomainDeploy(
338341

339342
// Warn about mismatching config and current values.
340343

341-
if (config.workers_dev == undefined && !workersDevInSync) {
344+
if (!firstDeploy && config.workers_dev == undefined && !workersDevInSync) {
342345
const currWorkersDevStatus = currWorkersDev ? "enabled" : "disabled";
343346
logger.warn(
344347
[
345348
`Worker has workers.dev ${currWorkersDevStatus}, but 'workers_dev' is not in the config.`,
346-
`Using fallback value 'workers_dev = ${wantWorkersDev}'.`,
349+
`Using default config 'workers_dev = ${wantWorkersDev}', current status will be overwritten.`,
347350
].join("\n")
348351
);
349352
}
350353

351-
if (config.preview_urls == undefined && !previewsInSync) {
354+
if (!firstDeploy && config.preview_urls == undefined && !previewsInSync) {
352355
const currPreviewsStatus = currPreviews ? "enabled" : "disabled";
353356
logger.warn(
354357
[
355358
`Worker has preview URLs ${currPreviewsStatus}, but 'preview_urls' is not in the config.`,
356-
`Using fallback value 'preview_urls = ${wantPreviews}'.`,
359+
`Using default config 'preview_urls = ${wantPreviews}', current status will be overwritten.`,
357360
].join("\n")
358361
);
359362
}

packages/wrangler/src/triggers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export const triggersDeployCommand = createCommand({
7474
legacyEnv: isLegacyEnv(config),
7575
dryRun: args.dryRun,
7676
assetsOptions,
77+
firstDeploy: false, // at this point the Worker should already exist.
7778
});
7879
},
7980
});

0 commit comments

Comments
 (0)