Jenkins

1、服务器配置

安装jdk

https://www.cnblogs.com/adawoo/p/11665532.html

安装Tomcat

https://www.cnblogs.com/wangbiubiu/p/9732626.html

Tomcat配置,应用发布子系统tomcat

Tomcat服务器的账号密码,配置文件位置: /tomcat/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" passwprd="123456" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

2、Jenkins安装

docker安装Jenkins

长期版本: docker pull jenkins/jenkins:lts

每周迭代版本: docker pull jenkins/jenkins

使用Jenkins.war安装

下载jenkins.war,放在Tomcat/webapps下,启动Tomcat自动安装

设置用户名密码

3、Jenkins配置

系统管理

全局安全配置

  • 允许用户注册

全局工具配置

  • 指定maven的settings.xml

  • 指定git的安装路径,使用github 的webhook钩子程序,可以在push代码后,Jenkins触发钩子程序自动部署

  • 指定JAVA_HOME,取消自动安装

  • 指定MAVEN_HOME,取消自动安装

  • 如果使用docker,指定docker安装路径

插件管理

可以查询已安装的插件

  • 安装 deploy to container 插件 : 将应用发布到tomcat下

  • 安装 Publish Over SSH插件: 通过SSH连接其他Linux机器,远程传输文件及执行Shell命令 。需要进行如下设置,在 系统配置 Publish over SSH ,

    • Passphrase: 密码(key的密码。如果有设置)

    • Path to key:私钥的位置

    • Key:私钥的内容。如果此处填入了值,则以此处的值为准,会忽略掉Path to key的配置

    • SSH Servers:服务器的配置

      -- Name:名称(自定义)

      -- Hostname:服务器地址

      -- Username:用户名

      -- Remote Directory:默认远程服务器的地址

    注意:在配置上述内容时,要首先在jenkins服务器上生成私钥,然后将公钥推送到服务器上

  • 安装 allure 插件:用来生成allure测试报告,安装后先去allure官网下载allure.zip,解压后添加到path,最后在Jenkins的全局工具配置中配置allure command

2、使用

new item新建一个项目,选择 freestyle project

项目配置

源码管理:项目源码,可以选择git 或 svn,需要添加 git/svn 密码,使用git需要安装git

构建触发器

1、 触发远程构建 :使用Jenkins的URL(http://ip:8080/jenkins/ job/test/build?token=TOKEN_NAME )远程构建

  • 身份验证令牌,设置token的值,如设置为 agru_token,则访问 http://ip:8080/jenkins/ job/test/build?token=agru_token,则会触发Jenkins远程构建,可以在Linux中使用curl访问这个URL触发构建,可编写为shell脚本

curl -X post -v -u admin:*** -H "Jenkins-Crumb:***" jenkins_url
-X:指定请求参数
-v:显示响应结果
-u:携带用户名、密码,用户名为admin,用户为安装Jenkins的要求填写的初始密码,在 initialAdminPassword中
-H:携带请求消息头信息,Crumb值在系统管理//全局安全配置中,百度查询,一般不用

2、 Build periodically (定时构建),语法:分 时 天 月 星期 ,如 00 10 * * *,即每天的10点

构建环境

构建

1、选择调用顶层maven目标(invoke top-level maven targets) 使用maven构建

  • 目标为 maven命令,如 :

clean install,清理后安装,打成war包

mvn test -Dmaven.test.failure.ignore=true 。执行项目测试,忽略失败case

2、send files or execute command over ssh(也可以在构建后操作中进行此操作),需要先下载插件 Publish Over SSH

(Transfer:执行的命令需要把打包过的项目源码从jenkins_home/workspace移动到Tomcat/webapps下,然后再启动tomcat服务,完成环境部署,也可以使用shell脚本来执行)

  • Source files:源文件地址,地址的目录是相对于jenkins workspace的目录,如果只需要执行命令不需要传输文件的时候,此处可以为空

  • Remove prefix:去除的文件地址。在Source files输入框中填入的地址,会默认在服务器下创建相同的文件夹,所以需要将我们不需要的文件夹在这里剔除掉

  • Remote directory:远程服务器接收文件的地址

  • Exec command:文件传输任务执行完毕后,在远程服务器上执行的命令

构建后操作

1、deploy war/ear to a container,需要先下载 deploy to container插件

  • WAR/EAR files :war包的路径,maven工程一般是 target/***.war

  • context path:访问项目的URL虚拟路径

  • container:添加Tomcat,填写Tomcat的用户名和密码(见1、中的Tomcat配置),url

2、allure report,需要先下载 allure Jenkins plugin 插件,然后配置allure command

  • path:path名称表示在项目根目录(workspacce)下生成此文件夹,文件夹用来保存生成html报告之前所依赖的json,xml,txt等类型文件

  • report path: Report path名称,这里的path同样会在项目根目录(workspacce)下生成,同时保存最后的html报告

3、send build artifacts over SSH,配置信息同 构建 中的send files or execute command over ssh

邮箱设置

  系统管理->系统设置中设置管理员邮箱 Jenkins Location

  系统管理->系统设置中测试基础邮件插件配置 Extended E-mail Notification

  系统管理->插件管理中搜索安装扩展邮件插件 Email Extension

  系统管理->系统设置中配置扩展邮件插件设置

  构建任务中配置editable email notification完成邮件发送,设置邮件内容,注意选择trigger触发邮件条件即可

 

问题

1、如果发现Jenkins构建项目的版本 不是们提交的最新版本,可以在svn的URL后面加上@HEAD,让Jenkins获取svn的最新提交版本

2、github webhook设置在settings下的webhooks     https://github.com/qiniu/webhook

原文地址:https://www.cnblogs.com/yjh1995/p/12585354.html