CI:持续集成 CD:持续部署
概念
定义了CD模式,帮助Jenkins从CI到CD转变,定义了代码构建、测试和发布完整的构建过程
node 机器,用于运行stage代码块
stage 块定义,用于定义任务子集,例如构建部分
step 一项任务,定义一个步骤告诉Jenkins要做什么
代码上线流程
安装与pipeline相关的所有插件
Jenkins下新建pipeline任务
配置丢弃旧的构建
配置pipeline 流水线 使用script脚本
pipeline{
agent any
stages{
stage("get code"){
steps{
echo "get code from scm"
}
}
stage("package"){
steps{
echo "package code"
}
}
stage("deploy"){
steps{
echo "deploy package to node"
}
}
}
}
在gitlab配置脚本 让pipeline读取执行
上线nginx代码脚本
pipeline{
agent any
stages{
stage("get code"){
steps{
echo "get code from scm"
}
}
stage("unit test"){
steps{
echo "unit test"
}
}
stage("package"){
steps{
sh ‘tar zcf /opt/web-${BUILD_ID}.tar.gz ./* --exclude=.git --exclude=Jenkinsfile’
}
}
stage("deploy"){
steps{
sh 'ssh 192.168.31.238 "cd /usr/share/nginx && mkdir web-${BUILD_ID}"'
sh 'scp /opt/web-${BUILD_ID}.tar.gz 192.168.31.238:/usr/share/nginx/web-${BUILD_ID}'
sh 'ssh 192.168.31.238 "cd /usr/share/nginx/web-${BUILD_ID} && tar zxf web-${BUILD_ID}.tar.gz && rm -rf web-${BUILD_ID}.tar.gz"'
sh 'ssh 192.168.31.238 "cd /usr/share/nginx && rm -rf html && ln -s web-${BUILD_ID} /usr/share/nginx/html"'
}
}
}
}