@ucdjs/release-scripts 0.1.0-beta.50 → 0.1.0-beta.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +71 -2
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -347,6 +347,59 @@ var GitHubClient = class {
|
|
|
347
347
|
});
|
|
348
348
|
logger.info(`Commit status set to ${farver.cyan(state)} for ${farver.gray(sha.substring(0, 7))}`);
|
|
349
349
|
}
|
|
350
|
+
async upsertReleaseByTag({ tagName, name, body, prerelease = false }) {
|
|
351
|
+
const encodedTag = encodeURIComponent(tagName);
|
|
352
|
+
let existingRelease = null;
|
|
353
|
+
try {
|
|
354
|
+
existingRelease = await this.request(`/repos/${this.owner}/${this.repo}/releases/tags/${encodedTag}`);
|
|
355
|
+
} catch (error) {
|
|
356
|
+
if (formatUnknownError(error).status !== 404) throw error;
|
|
357
|
+
}
|
|
358
|
+
if (existingRelease) {
|
|
359
|
+
logger.verbose(`Updating release for tag ${farver.cyan(tagName)}`);
|
|
360
|
+
const updated = await this.request(`/repos/${this.owner}/${this.repo}/releases/${existingRelease.id}`, {
|
|
361
|
+
method: "PATCH",
|
|
362
|
+
body: JSON.stringify({
|
|
363
|
+
name,
|
|
364
|
+
body,
|
|
365
|
+
prerelease,
|
|
366
|
+
draft: false
|
|
367
|
+
})
|
|
368
|
+
});
|
|
369
|
+
logger.info(`Updated GitHub release for ${farver.cyan(tagName)}`);
|
|
370
|
+
return {
|
|
371
|
+
release: {
|
|
372
|
+
id: updated.id,
|
|
373
|
+
tagName: updated.tag_name,
|
|
374
|
+
name: updated.name ?? name,
|
|
375
|
+
htmlUrl: updated.html_url
|
|
376
|
+
},
|
|
377
|
+
created: false
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
logger.verbose(`Creating release for tag ${farver.cyan(tagName)}`);
|
|
381
|
+
const created = await this.request(`/repos/${this.owner}/${this.repo}/releases`, {
|
|
382
|
+
method: "POST",
|
|
383
|
+
body: JSON.stringify({
|
|
384
|
+
tag_name: tagName,
|
|
385
|
+
name,
|
|
386
|
+
body,
|
|
387
|
+
prerelease,
|
|
388
|
+
draft: false,
|
|
389
|
+
generate_release_notes: body == null
|
|
390
|
+
})
|
|
391
|
+
});
|
|
392
|
+
logger.info(`Created GitHub release for ${farver.cyan(tagName)}`);
|
|
393
|
+
return {
|
|
394
|
+
release: {
|
|
395
|
+
id: created.id,
|
|
396
|
+
tagName: created.tag_name,
|
|
397
|
+
name: created.name ?? name,
|
|
398
|
+
htmlUrl: created.html_url
|
|
399
|
+
},
|
|
400
|
+
created: true
|
|
401
|
+
};
|
|
402
|
+
}
|
|
350
403
|
async resolveAuthorInfo(info) {
|
|
351
404
|
if (info.login) return info;
|
|
352
405
|
try {
|
|
@@ -2260,10 +2313,26 @@ async function publishWorkflow(options) {
|
|
|
2260
2313
|
status.published.push(packageName);
|
|
2261
2314
|
logger.step(`Creating git tag ${farver.cyan(`${packageName}@${version}`)}...`);
|
|
2262
2315
|
const tagResult = await createAndPushPackageTag(packageName, version, options.workspaceRoot);
|
|
2316
|
+
const tagName = `${packageName}@${version}`;
|
|
2263
2317
|
if (!tagResult.ok) {
|
|
2264
2318
|
logger.error(`Failed to create/push tag: ${tagResult.error.message}`);
|
|
2265
|
-
|
|
2266
|
-
|
|
2319
|
+
status.failed.push(packageName);
|
|
2320
|
+
exitWithError(`Publishing failed for ${packageName}: could not create git tag`, "Ensure the workflow token can push tags (contents: write) and git credentials are configured", tagResult.error);
|
|
2321
|
+
}
|
|
2322
|
+
logger.success(`Created and pushed tag ${farver.cyan(tagName)}`);
|
|
2323
|
+
logger.step(`Creating GitHub release for ${farver.cyan(tagName)}...`);
|
|
2324
|
+
try {
|
|
2325
|
+
const releaseResult = await options.githubClient.upsertReleaseByTag({
|
|
2326
|
+
tagName,
|
|
2327
|
+
name: tagName,
|
|
2328
|
+
prerelease: Boolean(semver.prerelease(version))
|
|
2329
|
+
});
|
|
2330
|
+
if (releaseResult.release.htmlUrl) logger.success(`${releaseResult.created ? "Created" : "Updated"} GitHub release: ${releaseResult.release.htmlUrl}`);
|
|
2331
|
+
else logger.success(`${releaseResult.created ? "Created" : "Updated"} GitHub release for ${farver.cyan(tagName)}`);
|
|
2332
|
+
} catch (error) {
|
|
2333
|
+
status.failed.push(packageName);
|
|
2334
|
+
exitWithError(`Publishing failed for ${packageName}: could not create GitHub release`, "Ensure the workflow token can write repository contents and releases", error);
|
|
2335
|
+
}
|
|
2267
2336
|
}
|
|
2268
2337
|
logger.section("📊 Publishing Summary");
|
|
2269
2338
|
logger.item(`${farver.green("✓")} Published: ${status.published.length} package(s)`);
|