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"
   }
}

四、构建

构建概览:

控制台输出详情:

可以看到每一步的执行详情,最后也是成功的!!!!!!

此外我们可以查看服务器及网页实际体验效果进行验证。

posted @ 2018-09-05 18:42  Ambition-LC  阅读(949)  评论(0编辑  收藏  举报