Skip to content

Commit 9c3a802

Browse files
author
deepshekhardas
committed
Fix release workflow indentation and version comparison
1 parent 5f73a3f commit 9c3a802

2 files changed

Lines changed: 21 additions & 14 deletions

File tree

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ jobs:
134134
# - Fresh hotfix while main has unreleased work (main released 4.4.5,
135135
# PR #3173 merged but unreleased; hotfix 4.4.6 from release/4.4.x):
136136
# 4.4.6 > 4.4.5 -> IS latest. Customers running `npm install` get it.
137-
#
138-
# Source of truth: npm's `latest` dist-tag for the canonical package
137+
#
138+
# Source of truth: npm's `latest` dist-tag for the canonical package
139139
# (`@trigger.dev/sdk`). All public packages are version-locked via the
140140
# `fixed` config, so any one is canonical.
141141
- name: Compare new version to current latest

scripts/enhance-release-pr.mjs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -415,22 +415,29 @@ function formatPrBody({ version, packageEntries, serverEntries, rawBody, release
415415
*/
416416
async function getReleaseContext() {
417417
const sourceBranch = process.env.SOURCE_BRANCH;
418-
if (!sourceBranch) return null;
418+
if (!sourceBranch) return null;
419419

420-
// Look up current npm `latest` for the canonical package
420+
// Look up current npm `latest` for the canonical package
421421
let currentLatest = "0.0.0";
422-
const out = await new Promise((resolve, reject) => {
423-
execFile(
424-
"npm",
425-
["view", "@trigger.dev/sdk", "dist-tags.latest"],
426-
{ maxBuffer: 1024 * 1024 },
427-
(err, stdout) => (err ? reject(err) : resolve(stdout.trim()))
428-
);
429-
});
430-
if (out && out !== "undefined") currentLatest = out;
422+
try {
423+
const out = await new Promise((resolve) => {
424+
execFile(
425+
"npm",
426+
["view", "@trigger.dev/sdk", "dist-tags.latest"],
427+
{ maxBuffer: 1024 * 1024 },
428+
(err, stdout) => resolve(err ? "" : stdout.trim())
429+
);
430+
});
431+
if (out && out !== "undefined") currentLatest = out;
432+
} catch {
433+
// fall through with default
434+
}
431435

432436
// Use semver-aware comparison - matches release.yml's sort -V exactly
433-
const willBeLatest = version !== currentLatest && version > currentLatest;
437+
// Split versions into parts and compare numerically
438+
const cmp = (a, b) =>
439+
a.split(".").map(Number).reduce((acc, n, i) => acc || n - (b.split(".").map(Number)[i] ?? 0), 0);
440+
const willBeLatest = cmp(version, currentLatest) > 0;
434441

435442
const m = sourceBranch.match(/^release\/(\d+\.\d+)\.x$/);
436443
const lineMatch = m ? m[1] : null;

0 commit comments

Comments
 (0)