Jenkins自动化CI CD流水线之7--流水线自动化发布PHP项目
一、前提
环境为:lnmp
PHP项目:wordpress(此处我们下载一个wordpress的源码。将其模拟为我们的代码上传到我们的git仓库)
二、配置
1)创建job
2)参数化构建
3)配置pipeline脚本(此处采用git仓库获取脚本)
4)最后,保存
三、编写jenkinsfile
接下里编写jenkinsfile文件:
jenkinsfile-PHP:
源码文件:
node ("slave01-172.16.1.2") { stage('git checkout') { checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], subm oduleCfg: [], userRemoteConfigs: [[url: 'git@172.16.1.3:/home/git/repos/wordpress']]]) } stage('code copy') { sh '''rm -rf ${WORKSPACE}/.git mv /usr/share/nginx/html/wp.com /data/backup/wp.com-$(date +"%F_%T") cp -rf ${WORKSPACE} /usr/share/nginx/html/wp.com''' } stage('test') { sh "curl http://wp.test.com/status.html" } }
下面为带解释版,但不可以使用,部分注释会造成问题
node ("slave01-172.16.1.2") { //绑定到该节点去执行 stage('git checkout') { //拉代码 checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], su bmoduleCfg: [], userRemoteConfigs: [[url: 'git@172.16.1.3:/home/git/repos/wordpress']]]) } stage('code copy') { //复制代码 sh '''rm -rf ${WORKSPACE}/.git //删除拉下来的项目的.git敏感文件 mv /usr/share/nginx/html/wp.com /data/backup/wp.com-$(date +"%F_%T") //备份旧文件 cp -rf ${WORKSPACE} /usr/share/nginx/html/wp.com''' //新文件复制到站点目录 } stage('test') { #测试 sh "curl http://wp.test.com/status.html" } }
四、构建
构建概览:
控制台输出详情:
可以看到每一步的执行详情,最后也是成功的!!!!!!
此外我们可以查看服务器及网页实际体验效果进行验证。