本文是我的jenkins入门demo,由于学习jenkins时间短,先介绍下简单maven项目的构建

(1)下载jenkins,参考https://www.jianshu.com/p/368685768680,,安装好插件,然后准备一个githup的项目

   备注:有时候执行shell命令提示无权限,这个修改jenkins的用户为root

   vim /etc/sysconfig/jenkins

向GitHub提交代码时触发Jenkins自动构建_ci

 

 

(2)服务器上安装maven,jdk,git环境,配置方法自行百度,很简单

(3)jenkins 配置

   点击 系统管理->全局工具配置

  配置maven,路径写服务器安装地址的配置文件

向GitHub提交代码时触发Jenkins自动构建_ci_02

 

配置JDK,别名随便写,路径写jdk环境地址

向GitHub提交代码时触发Jenkins自动构建_git_03

配置git 别名默认,路径地址写安装路径

向GitHub提交代码时触发Jenkins自动构建_ci_04

 

保存

(3)新建任务,名称随便写,下边选构建maven项目(后续学习深了,可以选择流水线,这个是生产用的最多的)

向GitHub提交代码时触发Jenkins自动构建_git_05

描述随便写

向GitHub提交代码时触发Jenkins自动构建_ci_06

源码管理用git,并填写git地址和账号密码,分支选mater

向GitHub提交代码时触发Jenkins自动构建_git_07

构建触发器就选这两个,下边的就是wenhook自动构建

向GitHub提交代码时触发Jenkins自动构建_git_08

bulid 输入maven打包命令

向GitHub提交代码时触发Jenkins自动构建_git_09

 

向GitHub提交代码时触发Jenkins自动构建_ci_10

shell脚本的内容,根据项目的实际需求编写

#!/bin/sh

echo "开始执行shell脚本"

# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe

# 指定最后编译好的jar的存放位置
JAR_PATH=/opt/workspace/cicdtest

# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH

# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/var/lib/jenkins/workspace/cicdtest/target

# 如果路径不存在,就创建路径
[ ! -e $JENKINS_JAR_PATH ] && mkdir -p $JENKINS_JAR_PATH

# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=cicdserver-0.0.1.jar

# 获取该项目的进程号,用于重新部署项目前杀死进程
process_id=$(ps -ef | grep cicdserver | grep -v "grep" | awk '{print $2}')

# 如果该项目正在运行,就杀死项目进程
if [[ ! -z "$process_id" ]]
then 
	echo "停止服务"
    kill -9 $process_id
else 
	echo "服务未启动"
fi

# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}

# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH

# 进入到存放项目jar的位置
cd ${JAR_PATH}

# 后台启动项目,并且将控制台日志输出到nohup.out中
nohup java -jar ${JENKINS_JAR_NAME} --server.port=9000 -Dfile.encoding=UTF-8 >nohup.out &

echo "shell脚本执行完毕"

 

保存后退出

(4)配置github webhook(gitlab,码云类似)

向GitHub提交代码时触发Jenkins自动构建_jar_11

这个 payload url可在jenkins的系统配置中配置生成

点击系统管理->系统配置->gitHup服务器,点高级

向GitHub提交代码时触发Jenkins自动构建_jar_12

勾选会生成一个url,复制粘贴到上边需要的地方

向GitHub提交代码时触发Jenkins自动构建_git_13

(5)测试

这里可以直接构建(手动构建),也可以通过push代码来自动构建

向GitHub提交代码时触发Jenkins自动构建_ci_14