Jenkins BlueOcean 多分支 部署 Kubernetes 应用
在实际的项⽬ 中,往往⼀个代码仓库都会有很多分⽀的,⽐如开发、测试、线上这些分⽀都是分开的,⼀般情况下 开发或者测试的分⽀我们希望提交代码后就直接进⾏ CI/CD 操作,⽽线上的话最好增加⼀个⼈⼯⼲预 的步骤,这就需要 Jenkins 对代码仓库有多分⽀的⽀持。这里我们使用 BlueOcean 来完成此处的 CICD 。
插件安装
登录 Jenkins Web UI -> 点击左侧的 Manage Jenkins -> Manage Plugins -> Available -> 搜索查找 BlueOcean -> 点击下载安装并重启
创建新 pipeline
安装完成后,我们可以在 Jenkins Web UI ⾸⻚左侧看到会多⼀个 Open Blue Ocean 的⼊⼝,我们点 击就可以打开
点击开始创建⼀个新的 Pipeline,我们可以看到可以选择 Git、Bitbucket、GitHub,我们这⾥ 选择 GitHub,
可以看到这⾥需要⼀个访问我们 GitHub 仓库权限的 token,在 GitHub 的仓库中创建⼀个 Personal access token:
将⽣成的 token 填⼊下⾯的创建 Pipeline 的流程中,然后我们就有权限选择⾃⼰的仓库,包括下⾯需要构建的仓库,⽐如我们这⾥需要构建的是 jenkins-demo 这个仓库,然后创建 Pipeline 即可:
Blue Ocean 会⾃动扫描仓库中的每个分⽀,会为根⽂件夹中包含Jenkinsfile的每个分⽀创建⼀个 Pipeline,⽐如我们这⾥有 master 和 dev 两个分⽀,并且两个分⽀下⾯都有 Jenkinsfile ⽂件,所以创建完成后会⽣成两个 Pipeline。
两个文件中 k8s.yaml 文件中 namespace 不一样,用来区分不同的分支
构建结果
~]# kubectl get pod -n default -o wide # master 分支部署到 default 分支
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mvnweb-demo-8f8d69455-l4s4c 1/1 Running 0 5m5s 10.244.1.3 node2 <none> <none>
~]# kubectl get pod -n dev -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mvnweb-demo-8ef7d50-578945f7fb-cr6kv 1/1 Running 0 5m40s 10.244.1.2 node2 <none> <none>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步