build: prepare twitch plugin beta release

This commit is contained in:
Peter Steinberger
2026-05-02 00:10:55 +01:00
parent c7e3c68fde
commit 543b248c5a
4 changed files with 93 additions and 11 deletions

View File

@@ -237,14 +237,31 @@ export function collectPublishablePluginPackageErrors(
return errors;
}
export type PublishablePluginPackageFilters = {
extensionIds?: readonly string[];
packageNames?: readonly string[];
};
export function collectPublishablePluginPackages(
rootDir = resolve("."),
filters: PublishablePluginPackageFilters = {},
): PublishablePluginPackage[] {
const publishable: PublishablePluginPackage[] = [];
const validationErrors: string[] = [];
const selectedExtensionIds = new Set(filters.extensionIds ?? []);
const selectedPackageNames = new Set(filters.packageNames ?? []);
const hasSelectedExtensionIds = selectedExtensionIds.size > 0;
const hasSelectedPackageNames = selectedPackageNames.size > 0;
for (const candidate of collectExtensionPackageJsonCandidates(rootDir)) {
const { extensionId, packageDir, packageJson } = candidate;
if (hasSelectedExtensionIds && !selectedExtensionIds.has(extensionId)) {
continue;
}
const packageName = packageJson.name?.trim() ?? "";
if (hasSelectedPackageNames && !selectedPackageNames.has(packageName)) {
continue;
}
if (packageJson.openclaw?.release?.publishToNpm !== true) {
continue;
}
@@ -268,7 +285,7 @@ export function collectPublishablePluginPackages(
publishable.push({
extensionId,
packageDir,
packageName: packageJson.name!.trim(),
packageName,
version,
channel: parsedVersion.channel,
publishTag: resolveNpmPublishPlan(version).publishTag,
@@ -443,7 +460,16 @@ export function collectPluginReleasePlan(params?: {
selectionMode?: PluginReleaseSelectionMode;
gitRange?: GitRangeSelection;
}): PluginReleasePlan {
const allPublishable = collectPublishablePluginPackages(params?.rootDir);
const changedExtensionIds = params?.gitRange
? collectChangedExtensionIdsFromGitRange({
rootDir: params.rootDir,
gitRange: params.gitRange,
})
: [];
const allPublishable = collectPublishablePluginPackages(params?.rootDir, {
extensionIds: params?.selectionMode === "all-publishable" ? [] : changedExtensionIds,
packageNames: params?.selection,
});
const selectedPublishable =
params?.selectionMode === "all-publishable"
? allPublishable
@@ -455,10 +481,7 @@ export function collectPluginReleasePlan(params?: {
: params?.gitRange
? resolveChangedPublishablePluginPackages({
plugins: allPublishable,
changedExtensionIds: collectChangedExtensionIdsFromGitRange({
rootDir: params.rootDir,
gitRange: params.gitRange,
}),
changedExtensionIds,
})
: allPublishable;

View File

@@ -11,7 +11,16 @@ import {
export function runPluginNpmReleaseCheck(argv: string[]) {
const { selection, selectionMode, baseRef, headRef } = parsePluginReleaseArgs(argv);
const publishable = collectPublishablePluginPackages();
const changedExtensionIds =
baseRef && headRef
? collectChangedExtensionIdsFromGitRange({
gitRange: { baseRef, headRef },
})
: [];
const publishable = collectPublishablePluginPackages(".", {
extensionIds: selectionMode === "all-publishable" ? [] : changedExtensionIds,
packageNames: selection,
});
const selected =
selectionMode === "all-publishable"
? publishable
@@ -23,9 +32,7 @@ export function runPluginNpmReleaseCheck(argv: string[]) {
: baseRef && headRef
? resolveChangedPublishablePluginPackages({
plugins: publishable,
changedExtensionIds: collectChangedExtensionIdsFromGitRange({
gitRange: { baseRef, headRef },
}),
changedExtensionIds,
})
: publishable;