必知的技术知识:jenkins

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 必知的技术知识:jenkins

阅读目录(Content)


1、基础知识1.1、简介1.2、特点解析1.3、Blue ocean插件安装1.3.1、插件安装1.3.2、查看效果2、BlueOcean界面查看2.1、我们点击"Blue Ocean"图标后,就可以看到一个整洁的界面2.2、查看流水线效果2.2.1、点击pipeline-test项目,再选择条目2.2.2、看到流水线详细流程图2.3、点击哪个子任务,它都会将该任务的具体执行过程全面展现出来2.4、在blue ocean重新构建3、使用BlueOcean创建流水线3.1、我们可以进入到BlueOcean 的首页,创建流水线3.2、创建流水线,选择git3.3、配置git地址3.3.1、配置git地址3.3.2、到gitlab项目中配置公钥3.3.3、命令流水线的名字3.3.4、创建流水线项目成功3.4、BlueOcean配置界面介绍3.4.1、代理3.4.2、环境变量3.4.3、编辑3.5、创建克隆项目流水线3.5.1、配置git项目信息3.5.2、运行测试4、复杂BlueOcean实践4.1、阶段名不支持中文的解决方法4.1.1、//代码效果参考:http://www.jhylw.com.cn/522329921.html

问题4.1.2、解决方法4.1.3、安装插件Strict Crumb Issuer4.1.4、配置跨站请求伪造保护,Crumb Issuer4.2、增加【获取代码】 4.2、增加Build【任务构建】4.3、增加并行【专属、集成、压力、系统测试】4.4、增加【环境布署】4.5、增加【项目检查】4.6、增加【清理环境】4.7、保存运行并且将流水线代码提交至仓库4.8、查看分支状态4.8.1、blue ocean分支查看4.8.2、分支状态解析4.8.3、点击状态查看4.9、术语解析4.10、查看gitlab master分支,是否有jenkinsfile4.10.1、gitlab jenkinsfile项目4.10.2、pipeline代码

回到顶部(go to top)1、基础知识


1.1、简介


到现在为止,我们pipeline就定制好了,但是我们看到,pipeline的界面好像不是太好看,其实还有一个插件专门用于更好的查看流水线效果图,这个插件叫做Blue Ocean。


Blue Ocean为开发人员提供了更具乐趣的Jenkins使用方式,它是从基础开始构建的,实现了一种全新的、现代风格的用户界面,有助于任何规模的团队实现持续交付。


github地址:


1.2、特点解析


特点 解析


流水线编辑器 用于创建贯穿始终的持续交付流水线,是一种直观并可视化的流水线编辑器。


流水线可视化 对流水线的可视化表示,提高了全企业范围内持续交付过程的清晰度。


流水线诊断 即刻定位自动化问题,无需持续扫描日志或关注多个屏幕。


个性化仪表盘 用户可以自定义仪表盘,只显示与自身相关的流水线。


平台集成 针对所有特性分支和Pull请求运行流水线,以报告的形式反馈状态给Github,使整个团队可以掌握是否需要执行更改,是否一切保存正常。


1.3、Blue ocean插件安装


1.3.1、插件安装


Blue Ocean


1.3.2、查看效果


回到顶部(go to top)2、BlueOcean界面查看


2.1、我们点击"Blue Ocean"图标后,就可以看到一个整洁的界面


2.2、查看流水线效果


2.2.1、点击pipeline-test项目,再选择条目


2.2.2、看到流水线详细流程图


2.3、点击哪个子任务,它都会将该任务的具体执行过程全面展现出来


2.4、在blue ocean重新构建


我们发现,流程线会动态显示进度


回到顶部(go to top)3、使用BlueOcean创建流水线


3.1、我们可以进入到BlueOcean 的首页,创建流水线


3.2、创建流水线,选择git


因为我们这里是Gitlab私有仓库,所以我们点击"Git",配置仓库认证


3.3、配置git地址


3.3.1、配置git地址


3.3.2、到gitlab项目中配置公钥


将提示出来的公钥信息,在gitlab仓库中进行sshkey认证,认证通过后,点击"创建流水线"


3.3.3、命令流水线的名字


3.3.4、创建流水线项目成功


保证名称可用,然后点击保存后,流水线就开始自动创建了,接下来我们就可以在BlueOcean的web界面上,自由的创建我们想要的流水线了,效果如下


3.4、BlueOcean配置界面介绍


3.4.1、代理


就是 agent,对应的是 jenkinsfile 的 agent命令,表示代码运行在哪里?


3.4.2、环境变量


允许我们为流水线设置一个环境变量, 这与"environment" 指令相同


3.4.3、编辑


点击现有阶段右侧的 "+" 按钮,将阶段添加到流水线中。


3.5、创建克隆项目流水线


3.5.1、配置git项目信息


3.5.2、运行测试


点击节点后,右侧就会有当前节点的基本配置详情


第一行: 当前步骤的名称


第二行: 步骤的详细定制步骤的类型


回到顶部(go to top)4、复杂BlueOcean实践


这里主要演示:命令主要是shell echo为例


4.1、阶段名不支持中文的解决方法


4.1.1、问题


只要我们的流水线定制过程包含中文(任意位置),导致点击 save and run之后 Console 无法保存


4.1.2、解决方法


# 找到jar文件


cd /root/.jenkins/plugins/blueocean-pipeline-editor/WEB-INF/lib


# 复制jar


mkdir /tmp/blueocean && cp blueocean-pipeline-editor.jar /tmp/blueocean && cd /tmp/blueocean


# 解压jar


jar xf blueocean-pipeline-editor.jar && rm -f blueocean-pipeline-editor.jar


# 源代码内容 -- org/jenkins/ui/jsmodules/blueocean-pipeline-editor/jenkins-jsextension.js


65734 var Base64 = { encode: function encode(data) {


65735 return btoa(data);


65736 }, decode: function decode(str) {


65737 return atob(str);


65738 } };


# 修改后内容 -- 对编解码内容进行修改


65734 var Base64 = { encode: function encode(data) {


65735 return btoa(unescape(encodeURIComponent(data)));


65736 }, decode: function decode(str) {


65737 return decodeURIComponent(escape(atob(str)));


65738 } };


# 重新生成jar包 -- 打包前,将旧的文件先移除


jar cvf blueocean-pipeline-editor.jar .


# 转移到指定的目录下


mv blueocean-pipeline-editor.jar /root/.jenkins/plugins/blueocean-pipeline-editor/WEB-INF/lib/


# 重新启动服务


systemctl restart jenkins


4.1.3、安装插件Strict Crumb Issuer


中文的功能是支持了,但是会引出另外一个问题 csrf问题


4.1.4、配置跨站请求伪造保护,Crumb Issuer


检查策略为刚才安装的 Strict Crumb Issuer


禁用默认的功能


- 取消勾选检查 Session的id


4.2、增加【获取代码】


4.2、增加Build【任务构建】


4.3、增加并行【专属、集成、压力、系统测试】


4.4、增加【环境布署】


4.5、增加【项目检查】


4.6、增加【清理环境】


4.7、保存运行并且将流水线代码提交至仓库


4.8、查看分支状态


4.8.1、blue ocean分支查看


点击流水线项目右侧的 "分支",然后把鼠标放到 任务执行条目上,右侧会多出几个标签,这几个标签作用


是:运行任务、查看任务执行历史、编辑当前流水线、任务的喜爱成功


4.8.2、分支状态解析


4.8.3、点击状态查看


4.9、术语解析


功能 解析


Run Status 运行状态


Pipeline Name 流水线名


Run Number ID号


Tab Selector 功能细节


Re-run Pipeline 重新运行 Edit Pipeline 编辑功能


Configure 进入配置


UI Go to Classic 回到ui界面


Logout 退出


Close Details 关闭


Branch or Pull Request 分支或pull请求


Commit Id 提交ID


Duration 持续时间


Completed Time 最近运行


Tab View 选修卡信息


4.10、查看gitlab master分支,是否有jenkinsfile


4.10.1、gitlab jenkinsfile项目


4.10.2、pipeline代码


pipeline {


agent any


stages {


stage('获取代码') {


steps {


git(url: 'git@192.168.10.10:web/tomcat_pro.git', branch: 'main', credentialsId: ' caee5905-e0a4-4566-acc8-6342602edb89')


}


}


stage('任务构建') {


steps {


sh 'echo "build"'


}


}


stage('专属测试') {


parallel {


stage('专属测试') {


steps {


sh 'echo "专属测试"'


}


}


stage('集成测试') {


steps {


sh 'echo "集成测试"'


}


}


stage('压力测试') {


steps {


sh 'echo "压力测试"'


}


}


stage('系统测试') {


steps {


sh 'echo "系统测试"'


}


}


}


}


stage('环境布署') {


steps {


sh 'echo "环境布署"'


}


}


stage('项目检查') {


steps {


sh 'echo "项目检查"'


}


}


stage('清理环境') {


steps {


sh 'echo "清理环境"'


}


}


}


}

相关文章
|
3月前
|
XML jenkins Java
必知的技术知识:Jenkins插件开发
必知的技术知识:Jenkins插件开发
109 0
|
移动开发 jenkins Linux
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(2)Jenkins实现自动化部署+自动化合并其他分支
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(2)Jenkins实现自动化部署+自动化合并其他分支
245 0
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(2)Jenkins实现自动化部署+自动化合并其他分支
|
jenkins Java 应用服务中间件
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
344 0
【CI/CD技术专题】「Jenkins实战系列」总结归纳Jenkins的安装使用和配置流程介绍
|
jenkins 测试技术 持续交付
【CI/CD技术专题】「Jenkins实战系列」jenkins+pipeline构建自动化部署
【CI/CD技术专题】「Jenkins实战系列」jenkins+pipeline构建自动化部署
359 0
【CI/CD技术专题】「Jenkins实战系列」jenkins+pipeline构建自动化部署
|
jenkins Java Shell
【CI/CD技术专题】「Jenkins实战系列」Jenkinsfile+DockerFile实现自动部署
【CI/CD技术专题】「Jenkins实战系列」Jenkinsfile+DockerFile实现自动部署
460 0
【CI/CD技术专题】「Jenkins实战系列」Jenkinsfile+DockerFile实现自动部署
|
安全 Java jenkins
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
282 0
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
|
Java Devops jenkins
【下一代核心技术DevOps】:(七)持续集成Jenkins的应用(Aliyun Pipiline持续构建)
1. 前言  使用Jenkins比较好的就是可以在整个构建顺序中增加自定义的动作,比如构建成功给Leader发个邮件,给团队核心发个微信什么的。 当然最基本的核心还是它可以构建多种开发语言的项目,此类构建程序还有很多,大家可以选择使用,没有最好的,只有最适合自己的。
1108 0
|
22天前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
21天前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
39 1
|
23天前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
【8月更文挑战第30天】在Jenkins服务器中,git和Gitee是常用的代码拉取终端。Git作为分布式版本控制系统,具备出色的灵活性和可扩展性;而Gitee则在国内网络环境下表现更佳,适合团队协作。Git配置包括安装、设置用户信息及生成SSH密钥等步骤;Gitee配置也类似,需注册账号、创建仓库、配置基本信息并设置远程仓库地址。开发人员提交代码后,可通过Webhook、定时轮询或事件监听等方式触发Jenkins动作,确保持续集成和部署高效运行。正确配置这些触发机制并通过测试验证其有效性至关重要。
45 2