9ecc4eeae8
构建前读取 OSS latest.json 并选择较高版本递增 patch 同步更新 AGC package、Tauri 与 Cargo 版本字段 让一键上传复用版本准备流程并更新发布文档 补充版本计算、配置校验与清单生成测试
35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
import { spawnSync } from 'node:child_process';
|
|
import path from 'node:path';
|
|
|
|
const bucket = process.env.AGC_OSS_BUCKET?.trim() || 'agc-dev';
|
|
const endpoint =
|
|
process.env.AGC_OSS_ENDPOINT?.trim() || 'oss-rg-china-mainland.aliyuncs.com';
|
|
if (!/^[a-z0-9][a-z0-9.-]{1,62}$/u.test(bucket) || /[\r\n\0]/u.test(endpoint)) {
|
|
throw new Error('OSS bucket 或 endpoint 配置无效');
|
|
}
|
|
process.env.AGC_UPDATE_OSS_BASE_URL ||= `https://${bucket}.${endpoint}/agc`;
|
|
|
|
const { generateUpdateManifest, prepareReleaseVersion, runTauriBuild } =
|
|
await import('./build-release.mjs');
|
|
|
|
function runOssutil(args) {
|
|
const binary = process.env.OSSUTIL_BIN?.trim() || 'ossutil';
|
|
const result = spawnSync(binary, [...args, '--endpoint', endpoint], {
|
|
stdio: 'inherit',
|
|
shell: false,
|
|
});
|
|
if (result.error) {
|
|
throw new Error(`无法执行 ${binary},请先安装并配置 ossutil`);
|
|
}
|
|
if (result.status !== 0) process.exit(result.status ?? 1);
|
|
}
|
|
|
|
await prepareReleaseVersion();
|
|
runTauriBuild([]);
|
|
const { artifact, manifestPath, manifest } = generateUpdateManifest();
|
|
const artifactKey = `agc/${manifest.version}/${path.basename(artifact)}`;
|
|
runOssutil(['cp', artifact, `oss://${bucket}/${artifactKey}`]);
|
|
runOssutil(['cp', manifestPath, `oss://${bucket}/agc/latest.json`]);
|
|
console.log(`[ai-game-creator-shell] 已上传 oss://${bucket}/${artifactKey}`);
|
|
console.log(`[ai-game-creator-shell] 已上传 oss://${bucket}/agc/latest.json`);
|