持续集成
环境准备
JDK
官网下载,jdk8压缩包
# 解压
tar -xvzf /home/king/jdk-8u291-linux-x64.tar.gz
# 系统环境变量配置,增加如下内容
vim /etc/profile
# 环境变量生效
. /etc/profile
# 测试
java -version
Git
yum -y install git
Maven
官网下载
# 解压文件
tar -xvzf /home/king/apache-maven-3.8.1-bin.tar.gz
# 修改配置文件
vim /usr/local/apache-maven-3.8.1/conf/settings.xml
# 添加本地仓库地址和镜像
<localRepository>/usr/local/apache-maven-3.6.3/ck</localRepository>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
# 添加环境变量
vim /etc/profile
# 测试
mvn -v
Jenkins
官网下载War包
java -jar jenkins.war --httpPort=9001
Docker
// 安装依赖
yum install -y yum-utils
// 配置软件源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
// 安装
yum install docker-ce docker-ce-cli containerd.io
流水线构建
- 登录jenkins,在全局工具配置中配置maven、jdk、git等信息
- 安装插件Deploy to container(自动化部署工程所需要插件)、GitHub Integration、GitHub Authentication、Generic Webhook Trigger、Maven Integration
- 创建一个流水线项目
- 选择GitHub项目,配置地址
- 选择GitHub的Hook触发,通过在GitHub中配置WebHook回调jenkins
在jenkins系统配置中设置github的回调地址如下
然后再github的项目中配置这个回调地址
- 流水线脚本编写
pipeline {
agent any # 指定流水线的执行节点
stages {
stage('Prepare'){
steps {
echo "workspace: ${WORKSPACE}"
echo "build_tag: ${BUILD_TAG}"
echo "node_name: ${NODE_NAME}"
}
}
stage('Build') {
steps {
// git拉取代码
git branch: 'main', url: 'git://github.com/Kingraymone/CICD.git'
// maven编译打包
sh "mvn -Dmaven.test.skip=true clean package"
}
}
stage('Run'){
steps{
// 移动到工作目录
sh 'cd ${WORKSPACE}'
// 根据项目中的Dockerfile构建镜像
sh 'docker build -f Dockerfile -t $(find . -name *.jar |head -n 1|cut -d \'/\' -f3|awk -F \'-\' \'{print $1$2}\'||echo cicd) .'
}
}
}
}