From b175d6b2a35f8b6869f981b96ceb20b2db979095 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Wed, 4 Mar 2026 10:20:07 -0800 Subject: [PATCH] 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 --- .github/workflows/release.yml | 4 +++- apps/server/scripts/cli.ts | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3018ff2030ddf9ea687c12dd2c65ebff99e6f5f2..2000f98b9cd3cd6a1528c0d4c2e806cc8c9f985c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -279,6 +279,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + ref: ${{ needs.preflight.outputs.ref }} - name: Setup Bun uses: oven-sh/setup-bun@v2 @@ -298,7 +300,7 @@ jobs: run: bun run build --filter=@t3tools/web --filter=t3 - name: Publish CLI package - run: node apps/server/scripts/cli.ts publish --tag alpha --verbose + run: node apps/server/scripts/cli.ts publish --tag alpha --app-version "${{ needs.preflight.outputs.version }}" --verbose release: name: Publish GitHub Release diff --git a/apps/server/scripts/cli.ts b/apps/server/scripts/cli.ts index ad79e85654d9fcb80276a564e609c5a1269af5ce..f95bbfe73137fd97901233673b94bf3c06a9ad2d 100644 --- a/apps/server/scripts/cli.ts +++ b/apps/server/scripts/cli.ts @@ -2,7 +2,7 @@ import * as NodeRuntime from "@effect/platform-node/NodeRuntime"; import * as NodeServices from "@effect/platform-node/NodeServices"; -import { Data, Effect, FileSystem, Logger, Path } from "effect"; +import { Data, Effect, FileSystem, Logger, Option, Path } from "effect"; import { Command, Flag } from "effect/unstable/cli"; import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; @@ -77,6 +77,7 @@ const publishCmd = Command.make( { tag: Flag.string("tag").pipe(Flag.withDefault("latest")), access: Flag.string("access").pipe(Flag.withDefault("public")), + appVersion: Flag.string("app-version").pipe(Flag.optional), provenance: Flag.boolean("provenance").pipe(Flag.withDefault(false)), dryRun: Flag.boolean("dry-run").pipe(Flag.withDefault(false)), verbose: Flag.boolean("verbose").pipe(Flag.withDefault(false)), @@ -107,10 +108,11 @@ const publishCmd = Command.make( yield* fs.writeFileString(backupPath, original); // Build package.json for publish + const version = Option.getOrElse(config.appVersion, () => serverPackageJson.version); const pkg = { name: serverPackageJson.name, type: serverPackageJson.type, - version: serverPackageJson.version, + version, engines: serverPackageJson.engines, files: serverPackageJson.files, dependencies: serverPackageJson.dependencies as Record, -- 2.54.0