新增后台 AGC 模板管理与模板库内容寻址落库
Project CI / AI game creator shell Rust crates (push) Successful in 2m53s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 2m53s
Project CI / AI game creator shell Rust smoke (push) Successful in 3m42s
Project CI / AI game creator shell Rust lane 2/2 (push) Has been cancelled
Project CI / Backend tests (push) Has been cancelled
Project CI / Frontend tests (push) Has been cancelled
Project CI / Repository checks (push) Has been cancelled
Project CI / AI game creator shell web tests (push) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (push) Has been cancelled
Project CI / Native shell tests (push) Has been cancelled
- 后台新增「模板管理」页:按权限查看并编辑模板名称/简介/标签/封面,支持上架与下架;路由、侧栏、tab 权限、API 客户端与 DTO 同步接入 - api-server 新增 /admin/api/agc-templates 读取与更新路由,复用现有后台鉴权与 tab 权限校验,权限不足按既有失败关闭口径拒绝 - module-assets 收敛模板库纯规则(active/inactive 投影、索引 schema 与重复项校验、ZIP 大小与摘要核对),platform-oss 承担对象存储读写、不可变对象复用与发布互斥锁 - shared-contracts 补后台模板 DTO;spacetime-module 账号存储适配保持既有 schema 不变 - AGC 壳内置模板索引与建项读取改为内容寻址对象,补模板安装、越界归档、索引不匹配等用例 - 模板库发布脚本支持定向发布与上架/下架合并、内容地址复用与锁语义,CLI 守卫用例同步;jenkins 两条客户端打包管线统一触发邮件通知 Job 并传递首装包链接 - 内置 5 个 Cocos 官方模板载荷与索引 fixture(内容地址对象,共 90 个文件) - 补「后台模板管理」里程碑与实施计划,更新模板库技术方案、开发运维文档与共享记忆 - 验证:admin-web 39 项用例与 typecheck、发布脚本 25 项用例、api-server 与 AGC 壳编译、模板库定向 Rust 用例(AGC 壳 18 项、module-assets/platform-oss 16 项、后台权限 1 项)、check:encoding / check:doc-index / check:production-ops / rustfmt 全部通过
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1041,8 +1041,7 @@ const checks = [
|
||||
{
|
||||
file: 'scripts/deploy/production-stdb-publish.sh',
|
||||
includes: '--freeze-dir',
|
||||
reason:
|
||||
'发布前备份默认使用 minimal 热备,避免 40G 级冷备空间门槛与停服。',
|
||||
reason: '发布前备份默认使用 minimal 热备,避免 40G 级冷备空间门槛与停服。',
|
||||
},
|
||||
{
|
||||
file: 'scripts/database-backup-to-oss.mjs',
|
||||
@@ -7718,6 +7717,14 @@ const agcPipelineContent = readFileSync(
|
||||
'jenkins/Jenkinsfile.ai-game-creator-shell-build',
|
||||
'utf8',
|
||||
);
|
||||
const agcMacosPipelineContent = readFileSync(
|
||||
'jenkins/Jenkinsfile.ai-game-creator-shell-macos-build',
|
||||
'utf8',
|
||||
);
|
||||
const notifyEmailPipelineContent = readFileSync(
|
||||
'jenkins/Jenkinsfile.production-notify-email',
|
||||
'utf8',
|
||||
);
|
||||
const scheduledRevisionTriggerContent = readFileSync(
|
||||
'jenkins/Jenkinsfile.scheduled-revision-trigger',
|
||||
'utf8',
|
||||
@@ -7740,6 +7747,49 @@ for (const [file, content] of [
|
||||
}
|
||||
}
|
||||
|
||||
for (const [file, content] of [
|
||||
['jenkins/Jenkinsfile.ai-game-creator-shell-build', agcPipelineContent],
|
||||
[
|
||||
'jenkins/Jenkinsfile.ai-game-creator-shell-macos-build',
|
||||
agcMacosPipelineContent,
|
||||
],
|
||||
]) {
|
||||
for (const [snippet, reason] of [
|
||||
[
|
||||
"build job: 'Genarrative-Notify-Email'",
|
||||
'客户端打包管线必须触发统一邮件通知 Job。',
|
||||
],
|
||||
[
|
||||
"string(name: 'OSS_DOWNLOAD_URL', value: ossDownloadUrl)",
|
||||
'客户端打包管线必须把本次 OSS 首装包链接传给邮件通知 Job。',
|
||||
],
|
||||
[
|
||||
"string(name: 'NOTIFICATION_EMAILS'",
|
||||
'客户端打包管线必须支持追加邮件收件人。',
|
||||
],
|
||||
['latest.json', '客户端打包管线必须从本次生成的渠道清单读取下载链接。'],
|
||||
]) {
|
||||
if (!content.includes(snippet)) {
|
||||
failed = true;
|
||||
console.error(`[check:production-ops] ${file} ${reason}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const [snippet, reason] of [
|
||||
[
|
||||
"string(name: 'OSS_DOWNLOAD_URL'",
|
||||
'统一邮件通知 Job 必须接收 OSS 下载链接参数。',
|
||||
],
|
||||
['OSS 下载链接:', '统一邮件通知正文必须展示 OSS 下载链接。'],
|
||||
]) {
|
||||
if (!notifyEmailPipelineContent.includes(snippet)) {
|
||||
failed = true;
|
||||
console.error(
|
||||
`[check:production-ops] Jenkinsfile.production-notify-email ${reason}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
for (const [snippet, reason] of [
|
||||
["cron('H * * * *')", '必须每小时检查一次远端版本'],
|
||||
['disableConcurrentBuilds()', '必须禁止并发触发,避免同一版本重复触发下游'],
|
||||
|
||||
Reference in New Issue
Block a user