jenkins+php+svn快速部署测试环境开发环境快速部署
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快速部署测试环境开发环境快速部署相关推荐
- Jenkins搭建.NET自动编译测试并实现半增量部署
@hzl201 2020-04-13 09:26 字数 18724 阅读 3353 Jenkins搭建.NET自动编译测试并实现半增量部署 运维 jenkins 前言 以前写前端项目打包部署,都是手动 ...
- 【Yeoman】热部署web前端开发环境
本文来自 "简时空":<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利 ...
- Laragon 在Windows中快速搭建Laravel本地开发环境
1.应用场景 主要用于快速搭建开发环境,帮助快速开发或者验证一些代码执行等. 优点: 功能更加强大, 更加简便好用 2.学习/操作 简介 对于那些使用 Windows 操作系统的同学来说,Homest ...
- 如何使用 Docker 快速配置数据科学开发环境?
如何使用 Docker 快速配置数据科学开发环境? 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难 ...
- 使用 docker 部署常用的开发环境
使用 docker 部署常用的开发环境 Intro 前段时间电脑之前返厂修了,所有的软件都要重新装一遍,很麻烦,既然用了 docker 有些环境就直接用 docker 部署了,免去了还要再下载软件重新 ...
- docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境
[Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...
- Vue快速上手笔记2 - 开发环境的搭建
Vue快速上手笔记2 - 开发环境的搭建 CSDN:JcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/qq_28550263/articl ...
- egret与php相连,JavaScript_Mac OS X 系统下安装和部署Egret引擎开发环境, 概述
Egret基于TypeScript开 - phpStudy...
Mac OS X 系统下安装和部署Egret引擎开发环境 概述 Egret基于TypeScript开发的,而TypeScript编译工具tsc是基于Node.js开发的.所以在安装过程中,我们先需要对 ...
- Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略
Computer:计算机测试理论(开发/测试/上线)之DEV.SIT.UAT.PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略 目录 测试理论 1.DEV.SIT.UAT.PRD四套环 ...
- 快速搭建离线地图开发环境(局域网地图开发工具)离线地图二次开发
相关下载:For Linux版本下载 快速搭建离线地图开发环境 局域网地图服务 离线地图数据服务 二次开发 一.软件介绍 BIGEMAP离线地图服务器,提供一站式搭 ...
最新文章
- ios(iphone/ipad)一个简单的用代码判断当前设备的方法
- Python 技巧篇-让我的程序暂停一下
- ORIG1和ORIG2的运用
- (转)Inno Setup入门(六)——在程序目录下创建文件夹
- 业务随行:用户的网络访问策略还能这么玩
- Python 机器学习——解决过拟合的方法
- Atitit 集合分组聚合操作sum count avg java版本groovy版本 目录 1. //按性别统计用户数	1 7. //按性别获取用户名称	1 16. //按性别求年龄的总和	1 2
- 域还原的三种模式,以及应用场景
- 基于Java毕业设计在线装机报价系统源码+系统+mysql+lw文档+部署软件
- 至尊宝代表哪一种人?
- FillRect与FrameRect
- 王者荣耀交流协会final发布第四次scrum例会
- android 系统 优化设置,优化设置 让你的Android手机快人一步
- 【干货福利】67个拯救web开发者的工具、库和资源!——爱创课堂
- CSK跟踪算法简介及代码的解读
- 读《Linking Convolutional Neural Networks with Graph Convolutional Networks: Application in Pulmonary》
- 中国的第一封电子邮件
- 欧尼酱讲JVM(12)——本地方法接口
- 菜谱小程序_云应用程序食谱
- telnet 126邮箱
热门文章
- 010day(表格及其相关属性)
- 环境监测数采仪-环保数采仪-AF-HK100 污染物在线监测
- ubuntu14.04 配置安装 wineQQ 2013
- matlab中 w 和 r,如何使用MATLAB 编辑公式 w^2=λ/π(根号下L(R-L)) L 是个变量 取值1到100 能不能画出一条曲线...
- JAVA集合Connection接口和Map接口常用的类及区别
- 天天团购--源码目录结构
- MapleSim助力长臂挖掘机建模问题解决
- 《大灌篮》:不一样的周杰伦
- 技术专栏|剖析-单目相机在旋翼机上的速度测量原理
- 【职坐标】SSM框架整合