|NO.Z.00377|——————————|CloudNative|——|KuberNetes&CI/CD.V15|——|Jenkins.v03|自动构建流水线设计|
一、Jenkins自动构建流水线流程
### --- Jenkins自动构建流水线流程
~~~ # 注意:使用BlueOcean创建Jenkinsfile时,任何步骤不能写中文
二、带构建的流水线创建流程
### --- 代码仓库创建项目
### --- 开发去开发代码逻辑
### --- Push到gitlab后执行构建
~~~ 自动构建: # 可以在项目中执行settings下的webhooks,webhooks就会配置jenkins,触发jenkins自动构建
~~~ i. Env.gitlabBranch
~~~ 手动构建: # 创建的项目不好希望自动构建,可能是很多人在开发,就是把代码逻辑开发到一定阶段,统一的去发一次版本,不希望每个开发提交代码就会构建,相当去定期构建,进行触发
~~~ i. BRANCH
~~~ 定时构建: # 设计到每一个大项目,依赖比较多,构建时间比较长,不用占用工作时间去构建项目;或者自动化测试的,自动化测试的接口,引用比较多,跑一次使用时间周期比较长,就可以使用定时构建在晚上来构建部署在环境中
### --- Jenkins调用k8s创建Pod执行构建: # 不会排队,只要k8s资源够的话,就会创建无数个pod进行各个项目,各个小组,各个成员的开发任务,且pod中是以镜像为基础的,不需要安装依赖环境,
~~~ 代码编译: # 同时执行,只要一个不过,流水线就停止掉
~~~ 代码扫描: # 同时执行,只要一个不过,流水线就停止掉
### --- 根据Dockerfile生成镜像: # dockfile可以放在项目中,一般都是放在项目的根目录下
~~~ # 放在对应项目的根目录下
~~~ i. TAG
~~~ ii. Dockerfile –>项目根目录
~~~ iii. Harbor地址
~~~ iv. Harbor registry
~~~ v. 应用名称
~~~ # 放在gitlab统一管理
~~~ # 每个job配置单独的变量
~~~ i. Jar、war——>基础镜像
~~~ ii. Html——>html/
~~~ iii. .——>工作目录 node server.js
~~~ 1.COPY 参数化
### --- Push镜像到镜像仓库
### --- Jenkins Slave kubectl——>set 命令 更新我们的镜像
~~~ 只更新镜像
~~~ Helm更新
### --- 判断程序是否启动
### --- 程序启动后,调用测试Job # 会调用到接口测试或者UI测试,会调用另外一个job
~~~ -w
~~~ 写脚本去判断 # StatefulSet可能会不支持-w参数
三、不构建的流水线创建流程
### --- 不构建的流水线创建流程
~~~ Jenkins调用镜像仓库接口,返回镜像tag
~~~ 选择对于的tag进行发版到其他环境
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor