# Devops项目构建发布定义上云迁移说明
更新前请记录好变更信息,推荐克隆对应的构建或发布定义,在克隆定义中执行无误后,再更新原定义。
克隆时请注意关闭对应的定时或周期触发策略以及代码触发策略。
# 更新构建发布定义引擎
记录好原引擎配置信息,更新为云上Jenkins服务引擎,配置好对应的节点和容器。


# 更新脚本和配置中的文件地址
请确保在云上容器中执行的脚本或其他配置文件中的文件路径可用。
一、更新脚本中的文件路径
以脚本执行原子任务为例:
当目标信息-目标选择为空时,该脚本将在云上jenkins容器环境中执行。
如果该脚本执行或其他原子任务中,涉及到绝对路径时,需要确认是否有对应目录以及文件的执行权限。
推荐所有cp、move、wget等命令中的目录或文件路径使用jenkins workspace根目录内的相对路径。
二、更新缓存路径
因为云上Jenkins服务节点不使用时会销毁,当我们需要经常访问同一部分文件时,可以将对应目录挂载出来。
以maven setting文件为例:
将项目参数
Ci.MavenSettings更新之后,所有没有更新过settings内容的【maven执行】原子任务将使用该配置文件。
参考如下配置,文件目录/opt/maven-localrepo已挂载。
云上jenkins服务地址:
http://10.16.16.90:30081/
节点:cicd
容器:all
maven localRepository 挂载路径:/opt/maven-localrepo/{对应项目请额外拼接项目Key}
# 异常排查
因为是通过云上jenkins服务执行,遇到构建发布错误时,我们需要保留容器环境,进入对于容器进行错误排查。
常用方式:
将报错的原子任务【高级(失败)】-失败后继续运行勾选上
在该原子任务下方添加一个脚本执行原子任务,脚本内容改为 sleep 1000000s,秒数足够排错就可以。
再次执行该流水线,等待流水线执行到sleep原子任务。
进入Jenkins服务所在云环境 查看对应namespace下的pod
kubectl get pod -n devops

进入对应容器,排查相应错误。
kubectl exec -it cicd-9xlvs -n devops /bin/bash
# 其他说明
对于某些执行较频繁,缓存较多的流水线,如包含了npm构建前端原子任务。
可以将【高级-引擎配置】中【EveryNewJob】和【AutoDeleteJob】参数置为false,服务将会保留对于的构建环境。
上云过程中可能会出现maven或node版本对应不一致,脚本执行中某些命令未安装等情况。需要通过更新云上jenkins服务镜像,安装对应版本程序才能解决。
淘宝 NPM 镜像站的新域名
https://registry.npmmirror.com