CI:持续集成 CD:持续部署
概念
定义了CD模式,帮助Jenkins从CI到CD转变,定义了代码构建、测试和发布完整的构建过程
node 机器,用于运行stage代码块
stage 块定义,用于定义任务子集,例如构建部分
step 一项任务,定义一个步骤告诉Jenkins要做什么
代码上线流程


安装与pipeline相关的所有插件
Jenkins下新建pipeline任务

配置丢弃旧的构建
配置pipeline 流水线 使用script脚本
pipeline{agent anystages{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 anystages{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"'}}}}
