jenkins 虽然作为java常用的打包部署工具,不过也可以使用在phpweb项目部署管理,前段时间帮公司部署了开发环境与测试环境,简单分享一下。

1、内网web环境搭建lnmp,centos下编译安装或者yum安装 google有很多资料,这里就不赘述了

2、nginx配置dev域名指向开发环境代码目录,svn设定钩子开发人员有更新后自动svn up更新开发环境代码

可参考http://www.360doc.com/content/14/0903/23/13647213_406884443.shtml

3、nginx配置test域名指向测试环境代码目录

4、服务器配置java环境后,下载jenkins,http://pkg.jenkins-ci.org/redhat-stable/  war包

直接java -jar jenkins.war启动jenkins,不需要安装啥tomcat(可将此命令加入开机自动启动配置)

5、建立jenkins任务,添加打包脚本,每次构建生成增量更新包与全量更新包,如下:

一、新建一个自由风格项目

二、配置svn

三、定时构建

这个定时是每天12点01分跟18点05分构建一下

四、设置shell打包脚本

cd /root/.jenkins/workspace
#find need update file
find  project_name    -mmin -1 | grep -v ".svn"  > svn.log #jenkins构建后查找1分钟内有修改的文件
#clear history
rm -rf pakage/*
#cope auto file
/usr/local/php/bin/php makeAutoPk.php #将有修改文件打包,打包脚本下面有参考
#zip auto file to target path
cd pakage/<span style="font-family: Arial, Helvetica, sans-serif;">project_name</span><span style="font-family: Arial, Helvetica, sans-serif;">/</span>
datestr=$(date +%Y%m%d%H%M)
targetpath="/home/hn/update_code/"#更新放置的目录
mkdir ${targetpath}${datestr}
filename="/auto.zip"
zip -r ${targetpath}${datestr}${filename} .
#cp all file
cd ..
cp -a ../shop_test all
#delete nouse file
find all -name .svn|xargs rm -rf#删除svn更新文件
cd all
#删除不需要打包的文件
rm -rf temp
rm -rf images#zip all file to target path
zip -r ${targetpath}${datestr}/all.zip .#update解压增量包覆盖
unzip -o ${targetpath}${datestr}/auto.zip -d  test_path#test_path为测试环境代码目录
</pre>makeAutoPk,php脚本<p></p><p></p><pre name="code" class="php"><?php
/*** 制作增量包*/
$fileClass = new FileStatic();
$fileClass->makePackege();class FileStatic
{   public $targetPath;//目标路径public $fileArr;//需要打包文件日志public $deleteFile;//删除的文件public $projectName;//项目名称public $sourcePath;//代码源public function __construct($projectName = 'shop'){$this->projectName = $projectName;$log = file_get_contents('svn.log');$this->fileArr = explode("\n", trim($log));$this->deleteFile = array();$this->targetPath = __DIR__.'/pakage/'.date('Ymdhms',time());$this->sourcePath = __DIR__;if( !is_dir ($this->targetPath)) $this->mkdirs($this->targetPath,0775);}//打包public function makePackege(){if(empty($this->fileArr)){echo "no file to make";exit;}foreach($this->fileArr as $file){$targetFile = $this->targetPath.'/'.$file;if(is_dir($file)){//文件夹if( !is_dir ($targetFile)) $this->mkdirs($targetFile,0775);}elseif(is_file($file)){//文件$folderName = dirname($targetFile);if( !is_dir ($folderName)) $this->mkdirs($folderName,0775);copy($this->sourcePath.'/'.$file,$targetFile);}elseif(!file_exists($file)){//不存在的文件夹$this->deleteFile[] = $file;}}}/*** 创建目录*/private function mkdirs($dir, $mode = 0775){if (is_dir($dir) || @mkdir($dir, $mode)){return true;}if (!$this->mkdirs(dirname($dir), $mode)){return false;}return @mkdir($dir, $mode);}}

jenkins+php+svn快速部署测试环境开发环境快速部署相关推荐

  1. Jenkins搭建.NET自动编译测试并实现半增量部署

    @hzl201 2020-04-13 09:26 字数 18724 阅读 3353 Jenkins搭建.NET自动编译测试并实现半增量部署 运维 jenkins 前言 以前写前端项目打包部署,都是手动 ...

  2. 【Yeoman】热部署web前端开发环境

    本文来自 "简时空":<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利 ...

  3. Laragon 在Windows中快速搭建Laravel本地开发环境

    1.应用场景 主要用于快速搭建开发环境,帮助快速开发或者验证一些代码执行等. 优点: 功能更加强大, 更加简便好用 2.学习/操作 简介 对于那些使用 Windows 操作系统的同学来说,Homest ...

  4. 如何使用 Docker 快速配置数据科学开发环境?

    如何使用 Docker 快速配置数据科学开发环境? 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难 ...

  5. 使用 docker 部署常用的开发环境

    使用 docker 部署常用的开发环境 Intro 前段时间电脑之前返厂修了,所有的软件都要重新装一遍,很麻烦,既然用了 docker 有些环境就直接用 docker 部署了,免去了还要再下载软件重新 ...

  6. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  7. Vue快速上手笔记2 - 开发环境的搭建

    Vue快速上手笔记2 - 开发环境的搭建 CSDN:JcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/qq_28550263/articl ...

  8. egret与php相连,JavaScript_Mac OS X 系统下安装和部署Egret引擎开发环境, 概述 Egret基于TypeScript开 - phpStudy...

    Mac OS X 系统下安装和部署Egret引擎开发环境 概述 Egret基于TypeScript开发的,而TypeScript编译工具tsc是基于Node.js开发的.所以在安装过程中,我们先需要对 ...

  9. Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略

    Computer:计算机测试理论(开发/测试/上线)之DEV.SIT.UAT.PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略 目录 测试理论 1.DEV.SIT.UAT.PRD四套环 ...

  10. 快速搭建离线地图开发环境(局域网地图开发工具)离线地图二次开发

         相关下载:For Linux版本下载   快速搭建离线地图开发环境     局域网地图服务   离线地图数据服务  二次开发 一.软件介绍     BIGEMAP离线地图服务器,提供一站式搭 ...

最新文章

  1. ios(iphone/ipad)一个简单的用代码判断当前设备的方法
  2. Python 技巧篇-让我的程序暂停一下
  3. ORIG1和ORIG2的运用
  4. (转)Inno Setup入门(六)——在程序目录下创建文件夹
  5. 业务随行:用户的网络访问策略还能这么玩
  6. Python 机器学习——解决过拟合的方法
  7. Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数 1 7. //按性别获取用户名称 1 16. //按性别求年龄的总和 1 2
  8. 域还原的三种模式,以及应用场景
  9. 基于Java毕业设计在线装机报价系统源码+系统+mysql+lw文档+部署软件
  10. 至尊宝代表哪一种人?
  11. FillRect与FrameRect
  12. 王者荣耀交流协会final发布第四次scrum例会
  13. android 系统 优化设置,优化设置 让你的Android手机快人一步
  14. 【干货福利】67个拯救web开发者的工具、库和资源!——爱创课堂
  15. CSK跟踪算法简介及代码的解读
  16. 读《Linking Convolutional Neural Networks with Graph Convolutional Networks: Application in Pulmonary》
  17. 中国的第一封电子邮件
  18. 欧尼酱讲JVM(12)——本地方法接口
  19. 菜谱小程序_云应用程序食谱
  20. telnet 126邮箱

热门文章

  1. 010day(表格及其相关属性)
  2. 环境监测数采仪-环保数采仪-AF-HK100 污染物在线监测
  3. ubuntu14.04 配置安装 wineQQ 2013
  4. matlab中 w 和 r,如何使用MATLAB 编辑公式 w^2=λ/π(根号下L(R-L)) L 是个变量 取值1到100 能不能画出一条曲线...
  5. JAVA集合Connection接口和Map接口常用的类及区别
  6. 天天团购--源码目录结构
  7. MapleSim助力长臂挖掘机建模问题解决
  8. 《大灌篮》:不一样的周杰伦
  9. 技术专栏|剖析-单目相机在旋翼机上的速度测量原理
  10. 【职坐标】SSM框架整合