使用 pipeline 实现 monitor 仓库代码的发布
在gitlab 仓库里面编辑 jenkins file ,定义步骤
1、在 Gitlab 在 monitor 仓库的根目录上添加 Jenkinsfile 文件,文件内容如下:
步骤
1.替换文件,
2.单元测试
3.打包
4.deploy 部署
5.测试
这个没有获取源代码,因为在获取jenkins file时候 已经把源代码拉倒仓库下面
此 jenkinsfile 包括五个 stage,分为 replace file、test、package、deploy,对于非编译项目,我们一般包括这五个阶段
pipeline { agent any stages { stage('replace file') { steps { echo "replace config file use cp " } } stage('unit test') { steps { echo "unit test " } } stage('package') { steps { sh 'tar czf /opt/web-${BUILD_ID}.tar.gz ./* --exclude=./git --exclude=Jenkinsfile' } } stage('deploy') { steps { sh 'ssh 192.168.31.11 "cd /data/www && mkdir web-${BUILD_ID}"' sh 'scp /opt/web-${BUILD_ID}.tar.gz 192.168.31.11:/data/www/web-${BUILD_ID}' sh 'ssh 192.168.31.11 "cd /data/www/web-${BUILD_ID} && tar xf web-${BUILD_ID}.tar.gz &&rm -f web-${BUILD_ID}.tar.gz"' sh 'ssh 192.168.31.11 "cd /data/www && rm -rf html && ln -s /data/www/web-${BUILD_ID}" /data/www/html' } } stage('test') { steps { echo "deploy after test " } } } }
${BUILD_ID} 是调用了环境变量,jenkins 环境变量 有个BUILD_ID 就是构建的#1 或者#2 编号
tar 打包 排除了 --exclude 目录下git仓库 和jenkinsfile
在jenkins 上点击立即构建
执行成功
我们看到我们部署已经成功。