Skip to content

Commit 9025a23

Browse files
committed
fix: remove retired cli migration publish checks
1 parent 340cab9 commit 9025a23

4 files changed

Lines changed: 18 additions & 37 deletions

File tree

scripts/build-cli.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,19 @@ describe("build-cli", () => {
2222
await expect(readdir(cliWebDir)).resolves.toEqual([]);
2323
});
2424

25+
it("does not recreate retired migration artifacts when preparing output directories", async () => {
26+
const cliDistDir = await mkdtemp(join(tmpdir(), "coder-studio-cli-dist-"));
27+
const cliEsmDir = join(cliDistDir, "esm");
28+
const cliWebDir = join(cliDistDir, "web");
29+
30+
await mkdir(join(cliEsmDir, "migrations"), { recursive: true });
31+
await writeFile(join(cliEsmDir, "migrations", "001_init.sql"), "-- stale\n");
32+
33+
await prepareCliOutputDirs({ cliDistDir, cliEsmDir, cliWebDir });
34+
35+
await expect(readdir(cliEsmDir)).resolves.toEqual([]);
36+
});
37+
2538
it("declares every bundled production dependency in the CLI package manifest", async () => {
2639
const pkg = JSON.parse(await readFile(join(CLI_DIR, "package.json"), "utf8")) as {
2740
dependencies?: Record<string, string>;

scripts/build-cli.ts

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55

66
import * as esbuild from "esbuild";
7-
import { copyFile, rm, writeFile } from "fs/promises";
8-
import { join, resolve } from "path";
7+
import { rm, writeFile } from "fs/promises";
8+
import { resolve } from "path";
99
import {
1010
CLI_DIR,
1111
CLI_ESM_DIR,
@@ -69,22 +69,6 @@ import('./esm/bin.mjs').catch((err) => {
6969
await writeFile(binPath, binContent, { mode: 0o755 });
7070
success(`bin.js: ${binPath}`);
7171

72-
// Copy migrations
73-
info("Copying database migrations...");
74-
const migrationsSrc = join(SERVER_DIR, "src/storage/migrations");
75-
const migrationsDest = join(CLI_ESM_DIR, "migrations");
76-
if (await exists(migrationsSrc)) {
77-
await ensureDir(migrationsDest);
78-
const { readdir } = await import("fs/promises");
79-
const files = await readdir(migrationsSrc);
80-
for (const file of files) {
81-
await copyFile(join(migrationsSrc, file), join(migrationsDest, file));
82-
}
83-
success(`Migrations: ${migrationsDest}`);
84-
} else {
85-
error("Warning: migrations source not found, skipping");
86-
}
87-
8872
// Copy web assets
8973
info("Copying web assets...");
9074
if (await exists(WEB_DIST_DIR)) {

scripts/publish-cli.test.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,12 @@ describe("publish-cli", () => {
8686
const dir = await mkdtemp(join(tmpdir(), "coder-studio-publish-"));
8787
const cliDir = join(dir, "packages", "cli");
8888

89-
await mkdir(join(cliDir, "dist", "esm", "migrations"), { recursive: true });
89+
await mkdir(join(cliDir, "dist", "esm"), { recursive: true });
9090
await mkdir(join(cliDir, "dist", "web"), { recursive: true });
9191
await writeFile(join(cliDir, "dist", "bin.js"), "#!/usr/bin/env node\n");
9292
await writeFile(join(cliDir, "dist", "esm", "bin.mjs"), "export {};\n");
9393
await writeFile(join(cliDir, "dist", "esm", "index.mjs"), "export {};\n");
9494
await writeFile(join(cliDir, "dist", "esm", "server-runner.mjs"), "export {};\n");
95-
await writeFile(join(cliDir, "dist", "esm", "migrations", "001_init.sql"), "-- init\n");
9695
await writeFile(join(cliDir, "dist", "web", "index.html"), "<!doctype html>\n");
9796
await writeFile(
9897
join(cliDir, "package.json"),
@@ -130,7 +129,7 @@ describe("publish-cli", () => {
130129
const dir = await mkdtemp(join(tmpdir(), "coder-studio-publish-"));
131130
const cliDir = join(dir, "packages", "cli");
132131

133-
await mkdir(join(cliDir, "dist", "esm", "migrations"), { recursive: true });
132+
await mkdir(join(cliDir, "dist", "esm"), { recursive: true });
134133
await mkdir(join(cliDir, "dist", "web"), { recursive: true });
135134
await writeFile(join(cliDir, "dist", "bin.js"), "#!/usr/bin/env node\n");
136135
await writeFile(
@@ -139,7 +138,6 @@ describe("publish-cli", () => {
139138
);
140139
await writeFile(join(cliDir, "dist", "esm", "index.mjs"), "export {};\n");
141140
await writeFile(join(cliDir, "dist", "esm", "server-runner.mjs"), "export {};\n");
142-
await writeFile(join(cliDir, "dist", "esm", "migrations", "001_init.sql"), "-- init\n");
143141
await writeFile(join(cliDir, "dist", "web", "index.html"), "<!doctype html>\n");
144142
await writeFile(
145143
join(cliDir, "package.json"),
@@ -172,13 +170,12 @@ describe("publish-cli", () => {
172170
const dir = await mkdtemp(join(tmpdir(), "coder-studio-publish-"));
173171
const cliDir = join(dir, "packages", "cli");
174172

175-
await mkdir(join(cliDir, "dist", "esm", "migrations"), { recursive: true });
173+
await mkdir(join(cliDir, "dist", "esm"), { recursive: true });
176174
await mkdir(join(cliDir, "dist", "web"), { recursive: true });
177175
await writeFile(join(cliDir, "dist", "bin.js"), "#!/usr/bin/env node\n");
178176
await writeFile(join(cliDir, "dist", "esm", "bin.mjs"), "export {};\n");
179177
await writeFile(join(cliDir, "dist", "esm", "index.mjs"), "export {};\n");
180178
await writeFile(join(cliDir, "dist", "esm", "server-runner.mjs"), "export {};\n");
181-
await writeFile(join(cliDir, "dist", "esm", "migrations", "001_init.sql"), "-- init\n");
182179
await writeFile(join(cliDir, "dist", "web", "index.html"), "<!doctype html>\n");
183180
await writeFile(
184181
join(cliDir, "package.json"),

scripts/publish-cli.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ export async function assertCliPublishArtifacts(
162162
await assertFile(resolve(cliDir, "dist/esm/index.mjs"));
163163
await assertFile(resolve(cliDir, "dist/esm/server-runner.mjs"));
164164
await assertFile(resolve(cliDir, "dist/web/index.html"));
165-
await assertDirectoryHasFile(resolve(cliDir, "dist/esm/migrations"), ".sql");
166165
assertBundleRuntimeDependenciesDeclared(
167166
pkg.dependencies,
168167
await collectBareImports(resolve(cliDir, "dist/esm"), [
@@ -300,18 +299,6 @@ async function assertFile(path: string): Promise<void> {
300299
}
301300
}
302301

303-
async function assertDirectoryHasFile(dir: string, extension: string): Promise<void> {
304-
const stats = await stat(dir).catch(() => null);
305-
if (!stats?.isDirectory()) {
306-
throw new Error(`Required publish artifact directory is missing: ${dir}`);
307-
}
308-
309-
const files = await readdir(dir);
310-
if (!files.some((file) => file.endsWith(extension))) {
311-
throw new Error(`Required publish artifact directory has no ${extension} files: ${dir}`);
312-
}
313-
}
314-
315302
function hasRecordValue(value: unknown, key: string, expected: string): boolean {
316303
return (
317304
typeof value === "object" &&

0 commit comments

Comments
 (0)