chore/cicd-gitea-jenkins
dev
把自托管 CI/CD(Gitea + Jenkins)的部署编排与凭据整改从 refactor/optimize-ui 中摘出,单独成为可评审单元。 15 个文件、+2092 行、全部为新增(git show --name-status 全为 A,不改动任何既有源码、构建配置或站点运行时)。
refactor/optimize-ui
git show --name-status
A
infra/cicd/
docs/deployment/cicd/
infra/cicd/.env.example
.env
.gitignore
拆出理由:凭据相关变更不应搭在 27 个 UI/文案提交的 PR 里被一并放行。
关闭:N/A —— 源自 2026-09 凭据事故复盘(docs/deployment/cicd/03-credential-incident.md),无对应 Issue。
docs/deployment/cicd/03-credential-incident.md
npm run type-check
npm run lint
Link
content-types.ts
console.log
TODO
FIXME
.only()
echo
bash -n
backup-cicd.sh
restore-cicd.sh
healthcheck-cicd.sh
truncate-container-logs.sh
purge-git-history.sh
rotate-credentials.sh
js-yaml
docker-compose.gitea.yml
docker-compose.jenkins.yml
jenkins/casc.yaml
casc.yaml
${ENV}
npm run test:unit
npm run test:coverage
npm run test
check:contrast
check:headings
npm run lighthouse
test:security:headers
next.config
docs/deployment/cicd/**
chore(infra)
origin/*
origin/dev
7df2dde
未验证项(不以「应该没问题」代替运行)
docker-compose.*.yml
compose config
up
plugins.txt
安全口径:本分支尚未纳入代码安全扫描覆盖(先前的针对性扫描只覆盖 UI 那 27 个文件),合并前建议补一次扫描。
- infra/cicd:docker-compose(gitea/jenkins)、JCasC(凭据统一 ${ENV} 注入,无硬编码)、 备份/恢复、健康检查、凭据轮换与 git 历史清除脚本 - docs/deployment/cicd:安装、高可用备份监控、凭据事故复盘 - .env.example 仅为占位模板;真实 .env 由 .gitignore 排除
No dependencies set.
The note is not visible to the blocked user.
变更摘要
把自托管 CI/CD(Gitea + Jenkins)的部署编排与凭据整改从
refactor/optimize-ui中摘出,单独成为可评审单元。15 个文件、+2092 行、全部为新增(
git show --name-status全为A,不改动任何既有源码、构建配置或站点运行时)。infra/cicd/:docker-compose(gitea / jenkins)、JCasC、插件清单、备份/恢复、健康检查、容器日志截断、凭据轮换、git 历史清除脚本docs/deployment/cicd/:安装手册、高可用/备份/监控、凭据事故复盘infra/cicd/.env.example仅为占位模板;真实.env由.gitignore排除拆出理由:凭据相关变更不应搭在 27 个 UI/文案提交的 PR 里被一并放行。
关联 Issue
关闭:N/A —— 源自 2026-09 凭据事故复盘(
docs/deployment/cicd/03-credential-incident.md),无对应 Issue。全链路检查
npm run type-check:N/A —— 本 PR 不含 TS/TSX 文件,未触及类型面npm run lint:N/A —— 无 JS/TS 源码改动,eslint 作用域内文件集不变Linkcontent-types.ts与 seedconsole.log/TODO/FIXME/.only():脚本为 bash,使用echo/日志前缀输出,符合脚本惯例测试分层检查(L0–L3)
bash -n6/6 通过:backup-cicd.shrestore-cicd.shhealthcheck-cicd.shtruncate-container-logs.shpurge-git-history.shrotate-credentials.shjs-yaml解析 3/3 通过:docker-compose.gitea.ymldocker-compose.jenkins.ymljenkins/casc.yamlcasc.yaml凭据扫描:5 处${ENV}注入、0 行疑似硬编码密钥质量门禁
npm run test:unit:N/A —— 无源码改动;基线 1594/132 已在同源提交上验证npm run test:coverage:N/A —— 未触及覆盖率口径,未下调任何阈值npm run test(Playwright):N/A —— 不改变浏览器可见行为check:contrast/check:headings:N/A —— 无样式与标题层级改动npm run lighthouse:N/A —— 不参与站点构建产物test:security:headers:N/A —— 本 PR 不改动next.config响应头(线上重复响应头问题另案说明)docs/deployment/cicd/**随代码同批入库chore(infra)rotate-credentials.sh、purge-git-history.sh、restore-cicd.sh只入库不执行,本次未运行任何一项;服务器侧执行须另行授权假绿灯纪律
bash -n6/6、js-yaml3/3、硬编码扫描 0 命中均为本次真实输出origin/*与实测为准:cherry-pick 目标为origin/dev(7df2dde),而非落后 34 个提交的本地dev其他说明
未验证项(不以「应该没问题」代替运行)
docker-compose.*.yml只做了 YAML 语法解析,未执行compose config/up—— 本机无该编排运行时依赖,启动会占用共享端口。jenkins/casc.yaml未在任何 Jenkins 实例实际加载;plugins.txt未与目标 Jenkins 版本做兼容性核对。安全口径:本分支尚未纳入代码安全扫描覆盖(先前的针对性扫描只覆盖 UI 那 27 个文件),合并前建议补一次扫描。
- infra/cicd:docker-compose(gitea/jenkins)、JCasC(凭据统一 ${ENV} 注入,无硬编码)、 备份/恢复、健康检查、凭据轮换与 git 历史清除脚本 - docs/deployment/cicd:安装、高可用备份监控、凭据事故复盘 - .env.example 仅为占位模板;真实 .env 由 .gitignore 排除