2023-9-6
有问题留言!!!
目的
在日常的项目测试过程中,搭建与维护测试环境是广大测试同学的一个基础技能,相信也很少会有公司完全不让测试去碰自己的测试环境。那么工作中大量的创建、部署、管理、维护等一系列的重复操作就成为了整个测试项目中一个巨大的工作量。
面对这样一种普遍的情况,Jenkins作为持续集成的良好解决方案就可以很好的解决以上的这些问题。对于一些重复的搭建部署操作都可以通过Jenkins来进行自动化完成,无需任何人工干预,有利于减少重复过程以节省时间、费用和工作量,让测试同学腾出更多的时间与精力来关注并着眼于其他的重要测试环节。
说明
- 操作系统采用CentOS7.9 / windows11
- Maven 版本 3.9.4 / windows下3.5.4
- Java版本11 / windows下jdk8
- 使用gitee仓库
环境配置
jenkins版本
jdk11 选择新版本。
jdk8 选择2.319.1。
CentOS安装JDK
查看可安装java版本
yum search java | grep jdk
安装
yum install -y java-1.8.0-openjdk
查看可切换java版本
需要java11版本,下载java11后进行切换版本
alternatives --config java 输入编号切换
maven安装
官网下载maven文件包上传服务器
tar -zxvf 文件名.tar.gz
将解压的目录移动到/usr/local目录下
mv 文件名 /usr/local/maven
测试maven安装是否成功
/usr/local/maven/bin/mvn 显示构建信息表示成功
配置环境变量
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
maven的镜像配置
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
git安装
yum install git
持续集成java
插件的安装
- 安装Maven integration
起maven项目
- Publish over SSH
远程连接服务器
启动jenkins.war包
//修改.jenkins文件的路径
set JENKINS_HOME=./data
//修改jar包的port
java -jar jenkins.war --httpPort=8081
全局JDK配置
本地windows要在环境变量加JAVA_HOME
CentOS下不用配置,默认使用java -version显示出来的版本
MAVEN配置
本地windows要在环境变量加 MAVEN_HOME
CentOs下配置maven
SSH Server配置
配置SSH Server
关闭jar进程,并删除文件
启动jars
这里命令可以用服务器的路径
CentOS上两个配置文件
clear.sh文件
#!/bin/bash
# 删除历史数据
rm -rf ./web_api.jar
rm -rf ./logs
echo "11"
#获取正在运行的jar包pid
pid=$(ps -ef | grep web_api | grep 'java -jar' | awk '{printf $2}')
echo $pid
if [ -z "$pid" ];
then
echo "$appname not started..."
else
kill -9 $pid
echo "$appname stop..."
fi
startup.sh文件
nohup java -jar **/web_api.jar >mylog 2>&1 &
注意:
- 确认程序所需要的jdk版本最好和jenkins一样,
- 直接在post Steps统一
# 改端口,该配置文件
PID=`lsof -i:8088| grep LISTEN |awk '{print $2}'`
echo ${PID}
export BUILD_ID=dontKillMe
if [[ $PID -ge 0 ]];then
kill -9 $PID
fi
cd /root/wisdom_sk/back/wisdom_sk_test
nohup java -jar /root/wisdom_sk/back/wisdom_sk_test/wisdom_sk_api.jar --spring.profiles.active=test> /root/wisdom_sk/back/wisdom_sk_test/startlog.log 2>&1 &
持续集成前端
前端一般依赖node 环境
CentOS安装Node
这里建议下载nvm管理node ,同时方便切换node版本
参考链接:https://blog.csdn.net/m0_49000161/article/details/133790114?spm=1001.2014.3001.5501
全局node配置
项目->构建->构建环境
构建
npm install # 因为node_modules没有提交所以需要install
npm run build # npm命令打包项目
rm -rf dist.tar.gz # 删除上一个\已存在的dist压缩包
tar -zcvf dist.tar.gz dist # 将新打的dist包进行压缩
send File 发送文件到服务器
角色和权限分配
Role Strategy Plugin 插件
针对多个project进行权限控制(访问)。
管理用户
设置用户的账号
Manage and Assign Roles
管理角色
Global roles
Item roles
project roles中Pattern正则表达式跟脚本里的不一样,比如过滤TEST开头的jobs,要写成TEST.而不是TEST,切记
分配角色
Global roles
Item roles
问题:
-
** jdk.tools:jdk.tools:jar 找不到**
因为centos环境下 yum 安装的java只有jre , tools需要装jdk才可。
安装命令
yum install java-1.8.0-openjdk-devel.x86_64
- jenkins通过nginx代理 没有路径 可以在jar启动的时候 统一加缀
nohup java -jar jenkins.war --httpPort=8080 --prefix=/jenkins &