jenkins⾃动化⼯具使⽤教程(转)
⾃动化构建、测试、部署、代码检测越来越重要。主要有⼀下⼏点原因
企业做⼤,项⽬变多,多端⽀持(web,h5,⼩程序等)
微服务提倡⾼内聚低耦合,项⽬因拆分变多
DevOps⾃动化运维流⾏
集化,⾼可⽤部署⽅案
避免⼈⼯操作出现的错误
集成管理系统,实现提交发布、发布审批、发布等UI可视化操作
等等原因,学习使⽤jenkins实现⾃动化作业⾮常有必要。这是我学习过程中整理的资料,分享给⼤家。
欢迎向我推荐更好的资料和讨论关于jenkins的问题。
⽬录
⼀、安装
1)      Jenkins环境
2)      Jenkins安装插件因⽹络问题报错处理⽅案
3)      Jenkins在url中关闭和重启.
4)      如何将Jenkins集成到其他系统
⼆、常见设置
1)      Jenkins 英⽂切换成中⽂
2)      Jenkins 中⽂乱码
3)      环境变量、脚本变量使⽤
4)      查看job执⾏时的历史环境变量
5)      去掉JENKINS的⾸页警告
6)      定时构建
三、常⽤⼯具cli
1)      git
2)      脚本
a)      shell
b)      bat
3)      xcopy
4)      7zip(7z)
四、安全设置
1)      常规安全设置
2)      ⽤户权限管理
五、      Dotnet 程序编译发布
1)      环境准备
2)      Msbuild插件 + webdeploy
3)      使⽤msbuild命令⾏
六、备份、回滚
1)      jenkins 配置、job等备份、还原
2)      站点备份、还原
七、⽂件传输
1)      Rsync同步⼯具
2)      Publish over SSH 插件
3)      Publish Over FTP 插件
4)      CopyArtifact插件
5)      Copy Data To Workspace插件
⼋、分布式构建
1)      master-slave
2)      多job串⾏、并⾏
3)      pipeline
4)      触发JENKINS远程构建
九、⾃动化测试
⼗、优化设置
1)      设置友好的构建记录名字
2)      设置详细的构建描述内容
3)      ⽇志⼤⼩的问题
4)      job并发构建
⼗⼀、其他插件
1)      多环境多配置插件 Matrix Project Plugin
2)      job参数化扩展
3)      jenkins插件 build timeout和build timestamp
4)      Email通知功能
⼗⼆、解决⽅案与案例
1)      Dotnet应⽤
2)      IOS\Android APP应⽤
3)      nodejs项⽬(webpack打包)
⼀、安装
Jenkins 是基于Java开发的⼀种可视化持续集成⼯具,将流⽔式的操作实现⾃动化。常⽤于⾃动化构建、⾃动化集成、⾃动化测试、⾃动化交付等
官⽅下载:
1)Jenkins环境
安装Jenkins
怎么在jenkins⾯板上⾯升级
2)Jenkins安装插件因⽹络问题报错处理⽅案
Jenkins镜像地址改为国内镜像地址:系统管理>>管理插件>>⾼级菜单下将'升级站点'中的URL设为ission/jenkins/updates/current/update-center.json  保存并且重启jenkins服务
3)Jenkins在url中关闭和重启.
(exit,restart,reload)
4)如何将Jenkins集成到其他系统
Jenkins常见REST API(将Jenkins集成到其他系统)
⼆、常见设置
1)Jenkins 英⽂切换成中⽂
Locale 插件
2)Jenkins 中⽂乱码
解决jenkins 控制台中⽂乱码问题
jenkins 解决⽇志打印乱码问题
3)环境变量、脚本变量使⽤
Jenkins 可⽤环境变量列表以及环境变量的使⽤(Shell/Command/Maven/Ant )
[Jenkins]传递⾃定义变量:job 内部步骤传递& job 之间传递
Jenkins 环境变量管理(全局环境变量< Slave 配置环境变量< Job 参数< Job injected 环境变量)
Environment Injector 插件(EnvInject):添加的环境变量,只有这个job 的构建过程中可见,其他jobs 的构建不可见
4)查看job 执⾏时的历史环境变量
当前job 执⾏记录 – 控制台输出 - Environment Variables
5)去掉JENKINS 的⾸页警告
6)定时构建
Jenkins 定时构建语法规则
三、    常⽤⼯具cli
1)  git
jenkins 从git 拉取代码
jenkins 同时拉取多个git 仓库(插件:multiple-scms )
jenkins 选择分⽀构建(插件:git Parameters )
2)  脚本
a)shell
Shell 脚本常⽤命令
( ⼀般以.sh 为⽂件后缀,脚本开头必须是  #!/bin/bash )
b)bat
bat 教程
批处理FOR 参数/F 之tokens 详解
遍历⽂件夹&字符串处理
bat 中errorlevel 与%errorlevel%的区别
iis7 appcmd 命令:操作站点start|stop ,操作应⽤程序池start|stop|recycle(回收)
3)  xcopy
Xcopy 命令参数使⽤介绍
4)  7zip (7z )
7zip 在dos 命令⾏⽤法总结
四、    安全设置
1)常规安全设置
jenkins 全局安全设置
2)⽤户权限管理
⾃带的权限管理
Jenkins 权限控制插件Role-based Authorization Strategy
Jenkins - Jenkins 修改⽤户密码
忘记Jenkins 管理员密码的解决办法
五、    Dotnet 程序编译发布
1)环境准备
使⽤vs 安装包,安装组件:roslyn 、msbuild 、webdeploy 、对应版本的 framework 、nuget 等
2)Msbuild 插件 + webdeploy
Git + msbuild 插件 + webdeploy
3)使⽤msbuild 命令⾏
MSBuild 命令⾏编译项⽬且不包含pdb ⽂件
vs2017案例(⾃⾏下载vs2017的msbuild ,每个版本的msbuild ⽀持的参数有差异)
jenkins_profile.pubxml 内容如下
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<DeleteExistingFiles>True</DeleteExistingFiles>
</PropertyGroup>
01"***\2017\Professional\MSBuild\15.0\" /toolsversion:15.0 /t:Rebuild  /p:DeployOnBuild=true /p:Configuration=Release /p:DebugType=none /p:ExcludeGeneratedDebugSymbol=true /p:PublishProfile=D:\DevOps\jenkins_ex\Common\Config\jenkins_profile.pubxml
/
p:publishUrl=D:\DevOps\jenkins_ex\Build\Prod\***\Attach\File /p:VisualStudioVersion=15.0 /p:TargetFrameworkVersion=v4.6.1
D:\DevOps\jenkins_ex\Source\Prod\***\Attach.csproj Rebuild
重新⽣成并⽣成到OutputPath OutputPath
不结合Web Deploy ⼯具,编译输出的dll 路径WebProjectOutputDir
不结合Web Deploy ⼯具,web ⽂件(js ,css ,cshtml 等)的输出⽬录toolsversion
根据.csproj ⾥⾯的值进⾏设置。15.0对应vs2017的msbuild
DeployOnBuild
true表⽰启⽤编译并发布
Configuration发布模式Debug 和 Release
DebugType none,表⽰当前项⽬不⽣成pdb⽂件
ExcludeGeneratedDebugSymbol true,表⽰当前项⽬和引⽤项⽬都不⽣成pdb⽂件
PublishProfile结合Web Deploy⼯具进⾏发布。
publishUrl指定发布⽂件⽣成的⽬录
VisualStudioVersion Vs版本  15.0 对应vs2017
TargetFrameworkVersion Vs中右键.csproj,查看项⽬属性⾥的.NET版本
六、备份、回滚
1)jenkins 配置、job等备份、还原
使⽤thinbackup插件进⾏备份、还原
⼿动备份、还原
备份JENKINS_HOME下的所有⽂件和⽂件夹,恢复的时候先停⽌jenkins服务。
(JENKINS_HOME  是jenkins > 系统管理 > 系统配置> 主⽬录的值)
2)站点备份、还原
Jenkins实现⽣产环境部署⽂件的回滚操作(Windows)
jenkins:⼀键回滚站点集
七、⽂件传输
1)  Rsync同步⼯具
Rsync 是⼀个通过检查⽂件的时间戳和⼤⼩,来跨计算机系统⾼效地“差异”传输和同步⽂件的⼯具
第⼀次同步时rsync 会复制全部内容(⾸次复制时没有压缩包快),但在下⼀次只传输“修改过”的⽂件。
Rsync服务端配置
基础cli命令
-u, --update 仅仅进⾏更新,即跳过所有DST中更加新的⽂件
rsync ⾃动创建⽬录的坑点(只⽀持创建⼀层⽬录)
权限问题
(1)  rsync客户端下载⽂件,⽂件权限会加⼊rsync客户端运⾏的账户
(2)上传⽂件到rsync服务端,⽂件权限会加⼊rsync服务运⾏的账户
2)  Publish over SSH 插件
Jenkins使⽤shell脚本部署到远程服务器步骤
解决SSH: Transferred 0 file(s)
3)  Publish Over FTP 插件
使⽤⽅法
Jenkins的FTP上传插件Publish Over FTP Plugin设置⽀持中⽂路径
4)  CopyArtifact插件
把某个job的构建物拷贝到当前job的⼯作区
5)  Copy Data To Workspace插件
⽂件从master复制到slave
⼋、分布式构建
1)master-slave
Jenkins设置Master/Slave
(提⽰:规划好从slave节点远程⼯作⽬录,⽐如⽬录名为:jenkins_slave)
Slave配置节点中没有Launch agent via Java Web Start?
git使用详解
(勾选Java Web Start Agent Protocol/4 (TLS 加密)。安装和旧协议步骤⼀样)
运⾏slave-agent.jnlp需安装java jre1.81或以上版本,。
2)多job串⾏、并⾏
Jenkins上下游jobs设置(并⾏、串⾏)-- multijob 插件
(使⽤multijob 插件:master 和 slave 节点的“执⾏者数量”设置多些,否则⼦job过多,就没法并发⽽互相卡死)
3)pipeline
Jenkins Pipeline 纯脚本,效率⾼。但是,⼊门门槛⾼,配置可读性差,维护难。使⽤multijob插件,可视化UI配置更加简单易⽤。Multijob 中包含的独⽴job,不能是pipe类型Jenkins Pipeline的总体介绍
Jenkins pipeline:pipeline 使⽤之语法详解
Jenkins pipeline 并⾏执⾏任务流
Jenkins Pipeline插件⼗⼤最佳实践
4)触发JENKINS远程构建
⽅式⼀:插件Parameterized Remote Trigger
username+job token⽅案
Credentials Authentication⽅案
(设置了”系统凭证”触发不了远程job。那么改为”全局凭证”)
(优化:单独设置⼀个执⾏远程job的账户,权限可控性⾼,⽇志⾥能查执⾏者)
⽅式⼆:HTTP URL 触发JENKINS远程构建
匿名⽅案
User API Token⽅案
九、⾃动化测试
Jenkins之插件Publish HTML reports的使⽤
Jenkins – Unit Testing(单元测试)
基于Jenkins设计⾃动化测试⼯作流
Postman+Newman+jenkins实现API⾃动化测试
Jenkins + Jmeter 构建接⼝、性能测试
Jenkins⾃动化测试(Selenium)
⼗、优化设置
1)设置友好的构建记录名字
使⽤user build vars 插件获取jenkins⽤户相关变量
(注意需要勾选"Set jenkins user build variables.")
⾃定义build name (build-name-setter + user build vars)
#${BUILD_NUMBER}-${ENV,var="BUILD_USER"}
直接使⽤ ${BUILD_USER} 也可以取到名字,但是会提⽰Unrecognized macro 'BUILD_USER',可以忽略2)设置详细的构建描述内容
使⽤description setter 插件设置构建描述(eg:重要参数显⽰、APP⼆维码等)
使⽤Jenkins搭建APP持续集成,并展现⼆维码
3)⽇志⼤⼩的问题
Jenkins⽇志⽂件过⼤解决⽅案
jenkins 修改log路径(仅linux)
Avoid large log Jenkins file (and stop build if needed)
(安装 Logfilesizechecker 插件和 build timeout 插件并在系统设置⾥⾯设置阈值)
jenkins ⽇志爆满DNS查询错误
4)job并发构建
必要时,job并发构建
⼗⼀、其他插件
提⽰:不使⽤的插件可以⾃⾏卸载掉,因为插件多了经常会提⽰你更新
1)多环境多配置插件 Matrix Project Plugin
(该插件已默认安装,旧名:multi-configuration)
Jenkins Multi-configuration Project使⽤体验
2)job参数化扩展
extended choice parameter (单选,多选,读取⽂件中的选项)
3)jenkins插件build timeout和build timestamp
4)Email通知功能
jenkins配置⾃动发送邮件(插件:Email Extension)
使⽤email-ext替换Jenkins的默认邮件通知
Jenkins上配置邮件通知模板案例
提⽰:将模板⽂件放到$JENKINS_HOME/email-templates⽬录下,如果没有这个⽬录,⾃⼰创建该⽬录。⼗⼆、解决⽅案与案例
1)Dotnet应⽤
jenkins部署平台⾃动化构建的⽅法步骤
jenkins+donet core持续集成环境搭建
Centos7+Docker+Jenkins+ASP.NET Core 2.0⾃动化发布与部署的实现
2)IOS\Android APP应⽤
使⽤Jenkins搭建iOS/Android持续集成打包平台
3)nodejs项⽬(webpack打包)
Jenkins打包NodeJS项⽬
===================================================
over。资料很多,⾜够你从⼊门到放弃。
欢迎向我推荐更好的资料和讨论关于jenkins的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。