Windows系统的Jenkins持续集成环境
Windows系统的Jenkins持续集成环境
如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境。之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Linux平台。为此很是头疼,经过一番摸索,终于走通了Windows平台下的一条路。
本CI系统流程:Dev提交代码,并merge到master分支-->Jenkns获取最新代码,开始构建(解析git触发响应,build solution,run automation,get result都在此步内完成)-->构建完成发送邮件。
首先,下载安装Jenkins:https://jenkins.io/
安装完成之后可以通过访问 http://hostname:8080 进入管理页面。选择:Manage Jenkins"。

在右侧列表中选中"Configure Global Secuity",选中"Allow user to sign up",然后就可以提前注册好要赋权限的账户。若以后不允许新管理账户的注册,在取消此选中项。

接下来,在代理项下,展开代理协议,并全部选中。此处选中之后,会启用"Java Web Start Agent",否则其在创建slave时处于不可见状态。(使用此代理,还需提前安装Java,到Java官网下载一个安装即可)

再回到"Manage Jenkins"界面,选择"Manage Node",点击"New Node"创建一个新的slave,这里我们选择"Permanent Agent",也可以选择从已有的slave复制出新的节点。填写名称,远程根目录和标签,启动方法选择如图。这里的远程目录用于存储Jenkins客户端运行文件。其他设置默认值就可以了:

好了,到这里一个node就创建好了。我们可以回到Node管理界面,此时新建的node是未连接状态,可以在你的另外一台server,或本机上访问你的Jenkins页面,并点击"Launch"连接node,并将之安装为本地service。如果你是Win10系统,会出现安装错误,这时别急,先将你的IE或这Edge以管理员的方式重新启动,再次访问Jenkins尝试连接和安装。当你觉得要启用这个安装的service时,先停止服务,然后再cmd命令窗口输入“sc delete servicename"就可以删除此服务了。servicename可以再service的右键属性中查看。

创建好了node,我们就和某一台server连接上了,接下来我们需要去创建job,去完成我们需要做的工作。
回到Jenkins主页面,点击"New Item",这里我选择使用"Freestyle Project"。编辑好项目名称,描述之后,我们可以定义清楚过时的build。这里我定义为保留7天以内的build,并规定最多只保留10个build。

前面介绍过,本CI系统响应git返回的触发条件,因此需要设置一个参数接收返回的响应,并在此设置在哪个node上执行此次构建任务,即填写创建node时设置的Label:

除了在创建node时的默认设置,我们也可以在此处设置自定义的workspace,获取的代码将存储在此处:

在源代码管理项中,我们选用Git,设置好相应的git项目url和访问的用户名和密码,分支选默认的master:

获取了代码之后,选择触发方式,如果时定时轮询的方式,选择"Poll SCM",设置间隔时间即可。需要每次提交都响应,这里我选择远程触发"Trigger builds remotely",设置一个token值待用。

这时,我们需要到Git网站代码管理设置页面,添加一个"Hooks & services",并启用"Pull request"。Payload URL的格式按照上面设置的token下提示的格式设置:

完成以上步骤之后,Job的运行环境基本上就已经设置成功了,接下来就是构建自动化运行脚本了。
回到刚才的Job编辑页面,继续往下走,点击"Add build step",在下拉框中可以看到,Jenkins支持的脚本语言十分丰富。这里我们会用到Window batch和Widows PowerShell。在这里写入你的业务处理脚本,保存一下。比如输出"Jenkins CI",在Windows batch框中输入"echo Jenkins CI",保存,就可以了。
最后,需要在脚本完成之后自动发送邮件。来看看是如何配置的:
配置邮件通知之前,我们需要到"Configure System"中设置一下邮件系统的基本配置。
首先,填写好Jenkins访问地址和发件人邮箱地址。

接下来,设置SMTP邮件服务器和一些默认值,包括接收对象,主题,内容等等。如此,最简单的邮件发送配置就完成了。后面来设置具体的邮件通知。

还是回到Job编辑页面,找到"Post-build Actions"并选择"Editable Email Notification"。设置实际的接收人,内容格式和默认主题。并设置默认内容,可以配合环境变量(此处不做详解)参数化、格式化内容文体。
需要发送附件的,还可以对附件的路径、名称进行设置。最后设置好邮件发送触发条件就OK了。

这样,一个完整的Windows平台下的CI系统就建立起来了。
Windows系统的Jenkins持续集成环境的更多相关文章
- 一步步部署基于Windows系统的Jenkins持续集成环境
如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Lin ...
- windows系统下Jenkins 持续集成安装使用
先要下载安装Tomcat,基于Java的web项目可以通过Tomcat运行.下载Jenkins,注意要安装在Tomcat的webapps目录下.安装完Jenkins会自动通过浏览器打开http://l ...
- Docker+Jenkins持续集成环境(5): android构建与apk发布
项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...
- Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...
- Jenkins持续集成环境, 如何自定义 maven repositories
假设自定义的仓库路径为“/opt/repository”,那么在“系统管理-系统设置”中,修改“全局MAVEN_OPTS”的值为如下的内容: -Dmaven.repo.local=/opt/repos ...
- Jekens 配置多项目SCM GitLab+Jenkins持续集成环境
参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...
- [Jenkins]持续集成环境下fingbug插件的安装使用与配置
参考:https://wiki.jenkins.io/display/JENKINS/FindBugs+Plugin 突然,天降杂事.我是想安安静静的做个美丽的测试...但是事与愿违,项目经理叫我帮忙 ...
- Jenkins在Windows系统dotnet平台持续集成
之前写过一篇文章是在CentOS上构建.net自动化编译环境, 今天这篇是针对于Windows平台的环境. Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平 ...
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...
随机推荐
- 呵呵呵呵。。。系统还原了,终于可以用IE登陆百度了
原文发布时间为:2009-12-19 -- 来源于本人的百度文章 [由搬家工具导入] 呵呵呵呵。。。今天终于有时间把系统还原了,终于可以用IE登陆百度了
- css3动画、边框、投影知识
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hdu 3518 Boring counting 后缀数组 height分组
题目链接 题意 对于给定的字符串,求有多少个 不重叠的子串 出现次数 \(\geq 2\). 思路 枚举子串长度 \(len\),以此作为分界值来对 \(height\) 值进行划分. 显然,对于每一 ...
- poj 2778 DNA Sequence 状态及状态转移 AC自动机 矩阵快速幂
题目链接 题意 给定\(m\)个字符串,问长度为\(n\)的字符串中有多少个不包含那\(m\)个字符串. (字符集为\(A,T,C,G\),\(m\leq 10\),长度\(\leq 10\),\(n ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---7
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- ansible 手册
ansible 官方文档:https://docs.ansible.com/ansible/latest/index.html ansible 中文入门:http://getansible.com/ ...
- 语义分割丨PSPNet源码解析「训练阶段」
引言 之前一段时间在参与语义分割的项目,最近有时间了,正好把这段时间的所学总结一下. 在代码上,语义分割的框架会比目标检测简单很多,但其中也涉及了很多细节.在这篇文章中,我以PSPNet为例,解读一下 ...
- Android学习--持久化(二) SharedPreferences
SharedPreferences SharedPreferences 也是通过一个简单的Demo来理解SharedPreferences我们该怎么用,说说自己站在一个iOS开发的角度来看这个Shar ...
- Laravel 时间处理
$info['date'] = $item->created_at->diffForHumans();//友好时间显示 $info['date'] = $item->created_ ...
- 在WCF中使用websocket
今天在网上闲逛的时候,发现WCF4.5中新增了一个NetHttpBinding协议,它是支持Websocket的.在网上找了一下教程,附上codeproject上的两篇文章: http://www.c ...