Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本系列博客以 windows 10 环境为例
1 安装jdk
1 Jenkins 自身采用 Java 开发,所以要必须安装 JDK;
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2 配置环境变量
2 安装 Jenkins
1、官网: https://jenkins.io/, 下载 LTS(稳定版)安装即可,windows安装很简单,直接双击msi文件安装即可,
建议先改一下工作主目录,请看第6 配置
安装后程序会自动创建了一个windows服务,Jenkins默认使用的端口是8080,在浏览器中输入地址:http://localhost:8080/,可打开界面
2、安装完后会在安装目录下的secrets文件夹下有一个initialAdminPassword文件,里面有初次的初始密码,登陆localhost:8080的时候 第一次需要用到,我的安装路径是默认路径C:Program Files (x86)Jenkins
如图
3、接下来插件安装,选左边建议的就行,毕竟插件可以随时安装,需要啥装啥,没必要纠结这一步、
4、设置登陆账户
5、安装插件
非必须的
我本次的项目是.net程序,使用git管理代码
所以需要安装git插件。MSBuild是在.NET 2.0中引入的针对Visual Studio的构建系统。它可以执行构建脚本,完成各种Task──最主要的是把.NET项目编译成可执行文件或者DLL,需要安装mubuild插件
安装git 插件(没有安装git的,参考安装教程)
如果按照上面的配置,git插件默认是已经安装上的,如果没有安装,可以这样安装
系统管理 -》插件管理-》installed 查看已安装的插件,如果没有git plugings就需要安装
系统管理 -》插件管理-》Avaliable 找到git plugin 下载安装
如果验证git plugin已经安装上了呢
New 任务-》确定创建后-》source code management 如果看到了git这个选项,证明git插件已经安装上了
好接下来配置git
从gitlab上面拷贝项目是需要登陆的,这里我们配置密钥后,才可以将项目代码克隆下来
1、先在jenkins服务所在主机上,生成ssh密钥对,方法如下:这是Linux下的,windows一样,我的生成后在C:Usersadmin.ssh
要进行下面的操作得先安装git
如果是win7 ssh-keygen -t rsa 后会报错没有这个指令
git bash下-》
然后在 C:user/admin/.ssh下面就能看到
win10下就按下面得操作
[root@node1 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: bf:1e:4d:b3:0f:fb:8b:71:cd:ef:d3:70:69:a4:46:ff root@node1.chinasoft.com The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | . . | | S + + .| | . o =.*.| | o * oo=| | o B .E| | .o o.+o+| +-----------------+ [root@node1 ~]# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3vhfbA4NdkP8g1WVyYkw93f1PZ04nWoyFnoerC9b40jIY5px+tkugdy/RZ3/bp4hMC5yNgV1S25Tm8RpzBJMp7pbJz8dO+LCKqUnXq9Eh0QhsZE0xlQN+J4awy9YIGiD2nFg7k/ZzeAtQRzNryrrPnKaWpXtg7tMGGTWBjeyLAVuqCOMU7euY94G26UmVfjDLIJkcJqB+8dwvodW3wpmUER32qVPKZLnSYSOCfoNed+P4Eujs5PBCLuzFvGyiDhY2Pwrk/4S11jWUa7TJItfoPXzeGc/ujaJi/o24dt8VXeFa/Rm4wywYLNW3TRjXy1mPpdVlob3701MMQ0bf3qPv root@node1.chinasoft.com
id_rsa:私钥
id_rsa.pub:公钥
2、在gitlab上配置公钥
1
2
3 把公钥复制到key里面,Title会自动填充,也可以改成容易识别的名字
3、在jenkins上配置私钥
有两种方式都能配置,一种全局配置,一种在新建task中配置全局密钥
全局配置:
1
2
3
4
好了,这算是配置完成了,可以尝试从git拉取项目代码了
下面来测试一下
新建一个任务
保存并构建,蓝色:成功 红色:失败
可以查看输出
安装MSbuild
这个安装比较简单,下载安装后,配置一下
插件安装后要重启jenkins
6 jenkins 配置
非必须的
主目录修改
jenkins的工作路径默认在安装盘中:我的在C:Program Files (x86)Jenkinsworkspace,显然我们不想把构建的项目放在c盘下吧,怎么办呢,改工作路径
改工作路径最好一开始就改好,否则会很麻烦,如果你配置并投入了运行再改的话,按照我下面的方法配置,会发现这相当于一个全新的服务,之前的配置和插件都没有了,当然网上也有解决办法,我没试
这是win10上的操作
1、添加环境变量JENKINS_HOME 值是工作主目录
2、创建你的主目录 D:myworkjenkins
3、修改配置文件,jenkins.xml C:Program Files (x86)Jenkinsjenkins.xml
如果没权限改的话,先拷贝出来,改好后再拷贝进去
将这一句
<env name="JENKINS_HOME" value="%BASE%"/>
改为
<env name="JENKINS_HOME" value="%JENKINS_HOME%"/>
4、重启或者启动
重启: localhost:8080/restart
退出:localhost:8080/exit
重启或退出后如果出现网页打不开了,可以看一下jenkins服务是否没有起来,我的电脑-》管理-》服务和应用程序-》服务
如果没有启动就手动起一下,我的就是手动起来的,然后就好了
如果要卸载,可以先把服务停了,直接将jenkis文件夹删除就好了,然后重新安装
5、看一下主目录
创建用户
系统管理-》用户管理-》创建用户 这里要说的是邮箱必须填写,如果不填写,不报错,也不让你注册成功。至少我的浏览器是这样的
构建一个简单的c#项目
1、准备C#依赖安装包
我pc上搭建过c#运行程序,网上说:
Microsoft Build Tools 2015 https://www.microsoft.com/zh-CN/download/details.aspx?id=48159
.NET Framework 4.6.1 Developer Pack https://www.microsoft.com/zh-CN/download/details.aspx?id=49978
NuGet x86 Commandline https://dist.nuget.org/index.html
2 配置MSBuild编译参数
我们上面已经从gitlab成功拉取项目要代码了,下面就来编译一下,我们要编译的项目是C#程序,使用MSbuild来编译构建
从上往下,依次是
- 选用的 MSBuild 版本
- 目标项目或解决方案文件的路径+文件名
- MSBuild 参数
这里主要讲一下“Command Line Arguments”的配置,更全面的 MSBuild 文档可以参阅 MSDN:https://msdn.microsoft.com/zh-CN/library/dd393574.aspx
/p:Configuration=Release Release 生成模式
/p:VisualStudioVersion=12.0 指定子工具集(https://msdn.microsoft.com/zh-cn/library/bb383796.aspx)版本,不设置会报错
好了保存构建吧。这是构建成功后的输出信息
触发构建
定时构建
一、定时构建语法
* * * * *
(五颗星,中间用空格隔开)
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
1.每30分钟构建一次:
H/30 * * * *
2.每2个小时构建一次
H H/2 * * *
3.每天早上8点构建一次
0 8 * * *
4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *
(多个时间点,中间用逗号隔开)
Poll SCM
1.Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作
2.如果我想每隔30分钟检查一次源码变化,有变化就执行
Job关联
1.举个案例场景,比如我下面Job1是web项目打包并发布的构建任务,我想每次打完包发布后,然后触发自动化测试Job2的构建。
(当然发布后,一般会等几分钟才会完全加载完成,再下一次构建的时候,可以用python加个脚本sleep几分钟)
我们设置这样的执行顺序,Test1->Test2->Test3
也就是说,我们需要在Test2的配置界面设置,构建前,需要勾选Build after other projects are build,然后Test2构建结束后,需要继续构建Test3.
打开Test2的配置界面
然后看看Test2的构建后步骤如何设置。
https://www.cnblogs.com/reblue520/p/7130914.html