Jenkins 流水线自动构建部署
记录一下从安装到自动化部署项目的步骤
Jenkins
记录一下从安装到自动化部署项目的步骤
安装
因为要自动化部署项目,且只有一个服务器,操作也在同一服务器上,所以我这里优先选择安装到本机而不是使用docker进行运行,请根据实际情况进行选择。
以Debian系为例
【官方安装指南】https://www.jenkins.io/zh/download/
导入Jenkins软件包仓库密钥
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key导入仓库
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/null安装
sudo apt-get update sudo apt-get install fontconfig openjdk-17-jre sudo apt-get install jenkins
到此安装完成,系统会自动为jenkins创建用户隔离权限。
【后续步骤】https://www.jenkins.io/doc/book/installing/linux/
如需修改端口,请修改Service文件
vim /lib/systemd/system/jenkins.service
content:
Environment="JENKINS_PORT=20000"
修改后记得重载服务。
启动Jenkins
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
访问对应端口,即可进入到Jenkins的后台页面,将Status中的密钥填入,继续后续的用户配置即可。
配置工作目录: 将一个文件的权限赋予Jenkins用户,后续Jenkins操作的文件将放在这里。
至此安装结束。
配置自动任务
点击New Item创建一个任务。
选择Freestyle project,这里使用系统内的工具进行构建,不再重复安装,如由Jenkins统一配置可以选择其他。
为jenkins用户的工作目录准备好项目文件,和git ssh权限。
su jenkins # 切换到jenkins用户 ssh-keygen # 生成密钥,填入Git托管平台Build Steps中使用 Execute shell编写命令
【java 后端示例】
#!/bin/bash BUILD_ID=NULL export JAVA_HOME=/usr/local/jdk17/ export PATH=$JAVA_HOME/bin:/usr/local/maven3.9.4/bin:$PATH # pull latest code & build jar file cd /home/jenkins/slms git pull -f cd backend mvn clean package -DskipTests # kill old process and move jar file PID=$(cat /home/jenkins/slms-backend/server.pid) kill -9 $PID || true rm -rf /home/jenkins/slms-backend/*.jar mv /home/jenkins/slms/backend/target/*.jar /home/jenkins/slms-backend/ # run new process and note the application pid cd /home/jenkins/slms-backend/ nohup java -jar backend-0.0.1-SNAPSHOT.jar --server.port=20002 > server.log 2>&1 & echo $! > server.pid【node 前端示例】
export PATH=/usr/local/nvm/versions/node/v18.20.5/bin:$PATH cd /home/jenkins/slms git pull -f cd frontend pnpm i pnpm run build rm -rf /home/jenkins/slms-frontend/dist mv /home/jenkins/slms/frontend/dist /home/jenkins/slms-frontend/dist配置完成后点击运行,根据输出日志信息进行排错。
配置触发机制
【Jenkins流水线触发方式】
主动定时轮询Git的版本变更
根据时间周期执行
Git托管平台支持的情况下通过主动通知Jenkins进行执行
或者自定义实现的远程触发
根据其他流水线执行完成后执行
这里配置【主动定时轮询Git的版本变更】的方式进行执行为例
配置 Source Code Management选择Git 指定对应的仓库
配置Git平台的访问密钥或者用户名密码
指定好要触发的分支
配置Build Triggers选择Poll SCM
H/15 * * * *
MINUTE HOUR DOM MONTH DOW
具体可点击网页上的问号,查看详细解释。


提供强力驱动