authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-04 10:20:07-08:00
committergravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-04 10:20:07-08:00
logb175d6b2a35f8b6869f981b96ceb20b2db979095
tree06d31fb703df75b0f09ab1b66b1454bd21e63559
parentc5c12aa73890f4096762bbc7a0fd8cb50bfd34fa

Fix CLI publish using stale package.json version

The publish_cli job was checking out the default ref instead of the preflight commit, so it published with the pre-bump version. Add the correct ref to checkout and a --app-version flag as a safety override. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

2 files changed, 7 insertions(+), 3 deletions(-)

.github/workflows/release.yml+3-1
...@@ -279,6 +279,8 @@ jobs:...@@ -279,6 +279,8 @@ jobs:
279 steps:279 steps:
280 - name: Checkout280 - name: Checkout
281 uses: actions/checkout@v4281 uses: actions/checkout@v4
282 with:
283 ref: ${{ needs.preflight.outputs.ref }}
282284
283 - name: Setup Bun285 - name: Setup Bun
284 uses: oven-sh/setup-bun@v2286 uses: oven-sh/setup-bun@v2
...@@ -298,7 +300,7 @@ jobs:...@@ -298,7 +300,7 @@ jobs:
298 run: bun run build --filter=@t3tools/web --filter=t3300 run: bun run build --filter=@t3tools/web --filter=t3
299301
300 - name: Publish CLI package302 - name: Publish CLI package
301 run: node apps/server/scripts/cli.ts publish --tag alpha --verbose303 run: node apps/server/scripts/cli.ts publish --tag alpha --app-version "${{ needs.preflight.outputs.version }}" --verbose
302304
303 release:305 release:
304 name: Publish GitHub Release306 name: Publish GitHub Release
apps/server/scripts/cli.ts+4-2
...@@ -2,7 +2,7 @@...@@ -2,7 +2,7 @@
22
3import * as NodeRuntime from "@effect/platform-node/NodeRuntime";3import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
4import * as NodeServices from "@effect/platform-node/NodeServices";4import * as NodeServices from "@effect/platform-node/NodeServices";
5import { Data, Effect, FileSystem, Logger, Path } from "effect";5import { Data, Effect, FileSystem, Logger, Option, Path } from "effect";
6import { Command, Flag } from "effect/unstable/cli";6import { Command, Flag } from "effect/unstable/cli";
7import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";7import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
88
...@@ -77,6 +77,7 @@ const publishCmd = Command.make(...@@ -77,6 +77,7 @@ const publishCmd = Command.make(
77 {77 {
78 tag: Flag.string("tag").pipe(Flag.withDefault("latest")),78 tag: Flag.string("tag").pipe(Flag.withDefault("latest")),
79 access: Flag.string("access").pipe(Flag.withDefault("public")),79 access: Flag.string("access").pipe(Flag.withDefault("public")),
80 appVersion: Flag.string("app-version").pipe(Flag.optional),
80 provenance: Flag.boolean("provenance").pipe(Flag.withDefault(false)),81 provenance: Flag.boolean("provenance").pipe(Flag.withDefault(false)),
81 dryRun: Flag.boolean("dry-run").pipe(Flag.withDefault(false)),82 dryRun: Flag.boolean("dry-run").pipe(Flag.withDefault(false)),
82 verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)),83 verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)),
...@@ -107,10 +108,11 @@ const publishCmd = Command.make(...@@ -107,10 +108,11 @@ const publishCmd = Command.make(
107 yield* fs.writeFileString(backupPath, original);108 yield* fs.writeFileString(backupPath, original);
108109
109 // Build package.json for publish110 // Build package.json for publish
111 const version = Option.getOrElse(config.appVersion, () => serverPackageJson.version);
110 const pkg = {112 const pkg = {
111 name: serverPackageJson.name,113 name: serverPackageJson.name,
112 type: serverPackageJson.type,114 type: serverPackageJson.type,
113 version: serverPackageJson.version,115 version,
114 engines: serverPackageJson.engines,116 engines: serverPackageJson.engines,
115 files: serverPackageJson.files,117 files: serverPackageJson.files,
116 dependencies: serverPackageJson.dependencies as Record<string, unknown>,118 dependencies: serverPackageJson.dependencies as Record<string, unknown>,