Lesson 08 · 发版
这是副作用最重的一条链。写正文之前必须先有一个可以安全操作的环境。
发版是这个岗位最不能出错的一件事 —— 它同时动本地磁盘、远端仓库和构建服务器,而且没有回滚按钮。
排在最后第二位,是因为它需要前面所有课的基础:进程边界(子进程干活)、请求链路(Jenkins API)、凭据(课 07)、状态(任务队列)。
src/api/task/index.ts 的 DevCardList() /
ResCardList() / ProdCardList() /
AlphaCardList(),每张卡片带 type(SVN 还是
Jenkins)
views/Option/index.vue:89-111 ——
任何构建在跑,所有卡片都点不动,包括纯本地的 SVN 提交
complieproject_svn() 列改动 →
FileRestoreDialog.vue 逐个勾选 →
svnCommit()。这条有确认步骤,相对安全
startBuild() 触发 →
taskStore 记一笔 →
checkstartBuild() 轮询。没有确认步骤,点了就走
utils/extend/jenkins/ 的 client / build / monitor / config
—— 这是项目里分层最整齐的一处,值得当范本
JOB_TYPES 里的默认名
→ initEnv() 的渠道替换 →
getJobOptions() 的覆盖
stopBuild(jobName, buildNumber)、重新登录重置
taskStore、以及「Jenkins
那边已经结束但客户端还在转」的处理顺序
setInterval 无超时上限(❌)、Jenkins 型无二次确认(❌)
/expert/release,把页面上的卡片和
src/api/task/index.ts 里的定义一一对上
views/Option/index.vue 的
compileProject() 读完(大约 45 行),画出它的分支
src/utils/extend/jenkins/ 四个文件 ——
加起来不长,是好代码的样本