mirror of
https://github.com/modelstudioai/cli.git
synced 2026-09-14 19:49:23 +08:00
feat(release): 支持 knowledge-studio-cli 的构建与发布流程
- 新增发布工作流 publish-knowledge.yml,支持 stable 和 channel 模式发布含 knowledge 的包 - runCheck 函数增加 knowledge 参数,支持同时构建和验证 knowledge-studio-cli 包 - publish-stable 和 publish-channel 脚本支持传入 knowledge 参数,调整发布的包列表 - packAndScan 函数支持指定发布包列表,增强灵活性 - 扩展 packages 模块,新增 ALL_PACKAGES 常量包含所有包(基础包加 knowledge-studio-cli) - loadAndValidate
This commit is contained in:
+12
-5
@@ -4,6 +4,7 @@ import { fileURLToPath } from "url";
|
||||
import { packAndScan } from "./lib/pack-scan.mjs";
|
||||
import { run } from "./lib/proc.mjs";
|
||||
import { assertReadmeSync, loadAndValidatePackages } from "./lib/validate.mjs";
|
||||
import { ALL_PACKAGES, PACKAGES } from "./lib/packages.mjs";
|
||||
|
||||
function log(msg = "") {
|
||||
process.stdout.write(`${msg}\n`);
|
||||
@@ -17,20 +18,24 @@ function step(msg) {
|
||||
* Pure-validation pipeline. Reusable from publish-stable / publish-channel.
|
||||
* Returns { coreJson, cliJson } for callers that need the parsed package.jsons.
|
||||
*
|
||||
* @param {{ channel?: boolean }} [options]
|
||||
* @param {{ channel?: boolean, knowledge?: boolean }} [options]
|
||||
* @param {boolean} [options.channel] — When true (publish-channel): regenerate
|
||||
* `reference/` and assert it matches git, but do not sync `SKILL.md` from the
|
||||
* temporary beta `package.json` version (repo skill stays aligned with stable).
|
||||
* @param {boolean} [options.knowledge] — When true: also build and validate
|
||||
* knowledge-studio-cli alongside the base packages.
|
||||
*/
|
||||
export async function runCheck(options = {}) {
|
||||
const channel = options.channel === true;
|
||||
const knowledge = options.knowledge === true;
|
||||
const packages = knowledge ? ALL_PACKAGES : PACKAGES;
|
||||
|
||||
step("pnpm install --frozen-lockfile");
|
||||
run("pnpm", ["install", "--frozen-lockfile"]);
|
||||
|
||||
step("metadata: README sync, version consistency, workspace:* dep");
|
||||
assertReadmeSync();
|
||||
const { coreJson, cliJson } = loadAndValidatePackages();
|
||||
const { coreJson, cliJson } = loadAndValidatePackages({ packages });
|
||||
log(`bailian-cli-core@${coreJson.version}`);
|
||||
log(`bailian-cli@${cliJson.version}`);
|
||||
|
||||
@@ -65,11 +70,13 @@ export async function runCheck(options = {}) {
|
||||
step("build bailian-cli");
|
||||
run("pnpm", ["--filter", "bailian-cli", "run", "build"]);
|
||||
|
||||
step("build knowledge-studio-cli");
|
||||
run("pnpm", ["--filter", "knowledge-studio-cli", "run", "build"]);
|
||||
if (knowledge) {
|
||||
step("build knowledge-studio-cli");
|
||||
run("pnpm", ["--filter", "knowledge-studio-cli", "run", "build"]);
|
||||
}
|
||||
|
||||
step("pack + scan (publint, gitleaks)");
|
||||
packAndScan({ log });
|
||||
packAndScan({ log, packages });
|
||||
|
||||
log("\nrelease check passed.");
|
||||
return { coreJson, cliJson };
|
||||
|
||||
Reference in New Issue
Block a user