GitLab和jenkins安装
GitLab+Jenkins+sonarqube+harbor+k8s安装-CSDN博客
GitLab和jenkins相关配置
如果是本地的话需要进入管理中心允许本地通过。新版gitlab没找到管理中心的入口,通过搜索框进入了管理中心。
jenkins安装gitlab插件,进行配置
gitlab的令牌在个人中心的访问令牌中,记得给api权限
上图中tools中修改maven安装位置、git安装位置、jdk安装位置
springboot项目
方式1 Maven项目(存在限制):
jenkins安装Maven Integration插件,新建一个maven项目
填写地址和分支
选择触发器
选择构建完成后执行shell脚本,使用docker运行,当然也可以写成直接运行的脚本,shell命令在下方
Shell命令:
NAME=test
JAR=test-0.0.1-SNAPSHOT
HOME=/var/lib/jenkins/workspace/test
cd $HOME/target
cp $HOME/Dockerfile $HOME/target
chmod 755 $JAR.jar
docker stop $NAME > /dev/null || true
docker rm $NAME > /dev/null || true
docker rmi $NAME > /dev/null || true
docker build -t $NAME . > /dev/null || true
docker run -d -p 9999:9999 --name $NAME $NAME
Dockerfile文件,位置与src同级:
FROM openjdk:17-jdk-slim
ENV PARAMS=""
ADD *.jar /test.jar
ENTRYPOINT ["sh","-c","java -jar /test.jar $PARAMS"]
完成之后就可以构建尝试了
gitlab触发器配置,进入项目然后找到jenkins集成:
配置地址,地址就是上方jenkins中给的地址,填写信息然后测试连接,没问题就可以推送测试
方式2 Pipeline(推荐):
触发器和方式1一样的配置
编写脚本
pipeline {
agent none
tools {
// 设定maven环境 ,这里对应tools中设置的名字
maven "maven"
jdk "jdk17"
}
stages {
// 定义一个git块,拉取代码并进行代码测试
stage('Git') {
agent any
steps {
// 片段生成器生成的拉取代码,credentialsId是设置的token的id,如果不知道可以选择流水线语法,在里面选择之后会给你自动生成下面语句
git branch: 'main', credentialsId: 'gitlab', poll: false, url: 'http://172.16.4.141:12000/root/test.git'
}
}
stage("pass"){
agent any
steps {
sh '''
NAME=test
JAR=test-0.0.1-SNAPSHOT
HOME=/var/lib/jenkins/workspace/test
cd $HOME
mvn clean package
cd $HOME/target
cp $HOME/Dockerfile $HOME/target
chmod 755 $JAR.jar
docker stop $NAME > /dev/null || true
docker rm $NAME > /dev/null || true
docker rmi $NAME > /dev/null || true
docker build -t $NAME . > /dev/null || true
docker run -d -p 9999:9999 --name $NAME $NAME'''
}
}
}
}