mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-04 08:27:35 +02:00
* CI: add ClawHub plugin release workflow * CI: harden ClawHub plugin release workflow * CI: finish ClawHub plugin release hardening * CI: watch shared ClawHub release inputs * CI: harden ClawHub publish workflow * CI: watch more ClawHub release deps * CI: match shared release inputs by prefix * CI: pin ClawHub publish source commit * CI: refresh pinned ClawHub release commit * CI: rename ClawHub plugin release environment --------- Co-authored-by: Onur Solmaz <onur@solmaz.io>
52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
#!/usr/bin/env -S node --import tsx
|
|
|
|
import { pathToFileURL } from "node:url";
|
|
import {
|
|
collectClawHubPublishablePluginPackages,
|
|
collectClawHubVersionGateErrors,
|
|
parsePluginReleaseArgs,
|
|
resolveSelectedClawHubPublishablePluginPackages,
|
|
} from "./lib/plugin-clawhub-release.ts";
|
|
|
|
export async function runPluginClawHubReleaseCheck(argv: string[]) {
|
|
const { selection, selectionMode, baseRef, headRef } = parsePluginReleaseArgs(argv);
|
|
const publishable = collectClawHubPublishablePluginPackages();
|
|
const gitRange = baseRef && headRef ? { baseRef, headRef } : undefined;
|
|
const selected = resolveSelectedClawHubPublishablePluginPackages({
|
|
plugins: publishable,
|
|
selection,
|
|
selectionMode,
|
|
gitRange,
|
|
});
|
|
|
|
if (gitRange) {
|
|
const errors = collectClawHubVersionGateErrors({
|
|
plugins: publishable,
|
|
gitRange,
|
|
});
|
|
if (errors.length > 0) {
|
|
throw new Error(
|
|
`plugin-clawhub-release-check: version bumps required before ClawHub publish:\n${errors
|
|
.map((error) => ` - ${error}`)
|
|
.join("\n")}`,
|
|
);
|
|
}
|
|
}
|
|
|
|
console.log("plugin-clawhub-release-check: publishable plugin metadata looks OK.");
|
|
if (gitRange && selected.length === 0) {
|
|
console.log(
|
|
` - no publishable plugin package changes detected between ${gitRange.baseRef} and ${gitRange.headRef}`,
|
|
);
|
|
}
|
|
for (const plugin of selected) {
|
|
console.log(
|
|
` - ${plugin.packageName}@${plugin.version} (${plugin.channel}, ${plugin.extensionId})`,
|
|
);
|
|
}
|
|
}
|
|
|
|
if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) {
|
|
await runPluginClawHubReleaseCheck(process.argv.slice(2));
|
|
}
|