Windows环境下Jenkins的安装与使用

397 阅读4分钟

1、安装包

官网地址:Jenkins下载地址

image.png 备注:2.3463版本基础要求:Jdk11或者17

2、安装过程

(67条消息) Windows 10 安装Jenkins 图文教程_技术宅星云的博客-CSDN博客_win10安装jenkins

3、简单的配置

3.1、配置本地的Git

image.png

3.2、创建一个访问仓库的凭证

image.png

3.3、配置本地的Maven

image.png

4、将jar包发布到远程服务器,并自动启动jar包

4.1、安装Publish Over SSH插件

image.png

4.2、配置远程服务器凭证

找到SSH Server点击新增 image.png 点击下面的高级,出现如下,然后勾选Use password authentication, or use a different key 就会出现Passphrase / Password,输入密码就好,然后点击应用和保存 image.png

4.3、配置远程服务

SHH Serve Name就是上一步自己配置的远程服务器凭证名称 image.png

配置发布jar包的参数

image.png

Transfers Set Source files配置,根据工作空间的jar包路径来配置 image.png

Remove prefix参数的作用,如果不配置这个参数,jar就会发布到/root/usr/local/jenkinswork/demo-jenkins/target目录下面。

Remote directory参数就是jar发布到远程服务器的地址(而且是在/root目录下)

Exec command参数就是发布成功后执行的命令,需要在执行的命令前面加上source /etc/profile,要不然命令不会执行。

5、配置杀死之前运行的进程

5.1、配置Pre step,表示项目Build之前执行的操作

image.png

5.2、脚本

#!/bin/bash
source /etc/profile

BUILD_ID=dontKillMe
#删除jar包

#获取输入参数
appname=$1

if [ -z $1 ];
	then 
		echo "Please input jar name"
	else
		#获取运行jar的pid
		pid=`ps -ef|grep $1 |grep 'java -jar' |awk '{print $2}'`
		if [ -z $pid ];
			then 
				echo "$appname not start"
			else
				kill -9 $pid
				echo "$appname pid:$pid stoping"
			check=`ps -ef|grep -w $pid |grep 'java -jar'`
			if [ -z $check ];
				then 
					rm -rf /root/usr
					echo "$appname is stop"
				else
					echo "$appname stop failed"
			fi	
		fi	

fi	

6、构建触发器

6.1、安装Build Authorization Token Root Plugin插件

解决访问权限的问题 image.png

6.2创建触发器

自定义一个token image.png

6.3触发链接地址

baseUrl+buildByToken/build?job=任务名称&token=上图中自定义token http://127.0.0.1:909/buildByToken/build?job=first&token=123

7、定时构建

Jenkins cron表达式

标准cron

crontab.guru

Jenkins cron不是标准的cron表达式

第一个 * 表示每个小时的第几分钟,取值0~59

H * * * *
H:每小时执行一次

第二颗 * 表示小时,取值0~23

* 15 * * * 表示每天下午3点
* 1 * * *  表示每天凌晨1点

第三颗 * 表示一个月的第几天,取值1~31
* 1 5 * *  表示每月5日凌晨1点

第四颗 * 表示第几月,取值1~12
* 15 5 1 *  表示每年几月执行

第五颗 * 表示一周中的第几天,取值0~7,其中0和7代表的都是周日

“/”

表示每隔多长时间,比如 */10 * * * * 表示 每隔10分钟

“H”

hash散列值,以job名取值,获取到以job名为入参的唯一值,相同名称值也相同,这个偏移量会和实际时间相加,获得一个真实的运行时间

意义在于:不同的项目在不同的时间运行,即使配置的值是一样的,比如 都是15 * * * * ,表示每个小时的第15分钟开始执行任务,那么会造成同一时间内在Jenkins中启动很多job,换成H/15 * * * *,那么在首次启动任务时,会有随机值参与进来,有的会在17分钟启动 有的会在19分钟启动,随后的启动时间也是这个值。这样就能错开相同cron值的任务执行了。

H的值也可以设置范围

H * * * *表示一小时内的任意时间

*/10 * * * *每10分钟

H/10 * * * *每10分钟,可能是7,17,27,起始时间hash,步长不变

45 3 * * 1-6 每个周一至周六,凌晨3点45 执行1次

45 3-5 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨4点45,凌晨5点45 各执行1次

H(40-48) 3-5 * * 1-6 在40~48之间取值 其他同上

45 3-5/2 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨5点45 各执行1次

45 0-6/2 * * 1-6 * * 1-6 0点开始,每间隔2小时执行一次 0:45、2:45、4:45

8、邮件服务

8.1、配置系统管理员邮箱

image.png

8.2、配置Extended E-mail Notification

如没有没有凭据则需要创建一个,并且密码是认证码,不是邮箱登录密码

image.png 配置邮件内容

image.png

9、将jar包打包成镜像

9.1、编写Dockerfile

  1. EXPOSE:表示镜像端口
  2. WORKDIR:表示工作目录
  3. ADD:表示将jar包(目标jar的位置是相对于WORKDIR)复制到哪里
  4. ENTRYOPINT:执行的命令
FROM openjdk:11
EXPOSE 8080
WORKDIR /root/dockerwork
ADD jarfile/demo*.jar /root/dockerwork/app.jar
ENTRYPOINT ["java","-jar","/root/dockerwork/app.jar"]                                                         

9.2、打包镜像

该命令在Dockerfile所在目录执行 docker build -t demo . image.png

9.3、运行镜像

docker run -d --name demo -p 8080:8080 demo