php利用svn hooks将程序自动发布到测试环境

By | 03月15日
Advertisement

  利用svn hooks将php程序自动发布到测试环境

  复制仓库hooks目录下的post-commit.tmpl为post-commit

cp post-commit.tmpl post-commit

  将post-commit修改为:

REPOS="$1"
REV="$2"

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

export PATH="/usr/local/svn/bin:$PATH"  #由于代码是apache的进程用户www运行,所以需要设置环境变量
export LC_CTYPE=en_US.UTF-8             #防止提交的文件名存在非字母字符。
if (svnlook log -r $REV 仓库所在目录 | grep "auto_deploy" )  #当用户提交时注释中写上"auto_deploy"的时候,就自动部署到apache目录,否则不部署。
then
  echo "`date` 'auto depoly command received" >> /tmp/test_svnautocommit.txt   #这一行仅作调试使用
  svn export "svn://IP:端口/项目"  部署目录  --force
  chown -R apache:apache 部署目录fi

  svn提交时会触发post-commit命令;只需要在注释中添加auto_deploy便可将svn内容导出到指定目录

  不足之处:每次为全量导出,耗时较长;可考虑做成增量导出的方式。

Similar Posts:

  • 产品翻译那点事儿--利用SVN HOOKS检测所要翻译的语言资源的变化

    之前3.0主导一次开发海外版的需求,翻译.测试什么的都不是事,最头疼和麻烦的就是开发人员新增和变化的语言资源如何让翻译人员知道.当时采取了一种最笨的办法,就是要求开发人员在做出这类变化时,需要将资源路径以及变化情况发送给翻译,以保证海外版的包是OK. 今天在新的团队里突然接到测试人员的邮件,说是利用SVN HOOKS写了个脚本,只要提交的代码里面有语言资源文件,那么服务器将自动发送邮件给指定的收件人.很牛逼的说,居然还有这么个事儿可以做.受教了^_^

  • 利用AS3编译器为程序自动添加帧: 方式一:[Frame]元数据标签的应用

    元数据标签的本质是编译器参数. [Frame]元数据标签是ActionScript3编译器未公开的标签,其作用是为程序添加一帧. Flex中Application就是就是利用[Frame]标签为来指定启动类(文档类):SystemManager 查看Flex中的Application的源代码,可以证明着一点: 参考 ================================================================= http://ch-kexin.iteye.com

  • 利用gulp,browserSync,nodemon搭建自动刷新的开发环境

    一,前言. 一开始学习web编程时,在改了某个html或是css或是js文件之后如果想要看效果,我们通常会手动刷新浏览器.之后学了后端编程更是麻烦,还得在命令行中输入node app.js 然后再刷新浏览器才能看到效果.这对于开发来说效率非常低. 同时在web编程中,往往我们并没有直接写html,css,js文件,而是写一些需要编译的,但语义更好或是更加简洁的jade,scss,ls文件.这就需要我们编写一些代码对这些文件进行编译.gulp工具就能够充当这样的角色. 然而gulp的功能远多于此,

  • 通过gitlab的webhook进行网站的自动发布

    作用:本地提交代码到git仓库以后,自动同步到服务器,避免每次重新登录到服务器去pull代码.本人主要用于管理开发环境和测试环境,在频繁修改开发代码时,每次通过提交git仓库,自动同步到测试环境,减少单独去发布测试环境的过程.配置测试环境:Linxu 系统,Nginx,Php,GitLab 原理:1.建立一个勾子文件,作用是通过php程序去pull代码.2.本地提交代码到git仓库时,通过webhook设置,去触发1中建立的勾子文件,以实现代码同步.3.设置ssh-keygen,让勾子文件执行p

  • C#Winform程序如何发布并自动升级(图解) - sufeinet

    C#Winform程序如何发布并自动升级(图解) 有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章 C# winform程序怎么打包成安装项目(图解) 其实打包是打包,发布是发布两者是没有任何关系的,只是有些同志会分不清楚.混在一起了. 下在面大家就和我一起来做一个发布并升级的程序吧. 首先我们准备几个工作 1.新建一个存储发布后程序的目录比如D:\iis\textWinform 以下简称-- 发布目录 2.新

  • svn hooks 自动发邮件

    svn hooks 自动发邮件 在svn库中有一个目录是hooks 这个目录是当svn发生一定事件时触发的脚本 其中post-commit 就是当你commit时触发的 在这个目录中会有一些模板文件 正常生效是去掉模板的扩展名 svn 还存在一个svnlook命令 是用来查看svn库的信息的 或是你commit的信息 hooks里可以调用svnlook 下面就是我实现的方法 1.需要commit-email.pl 这个文件可以网上下载 我的附件中有我改后的 修改 #为注释 +为要加入的行 #my

  • 利用ant自动从vss下载代码并编译到自动发布

    利用ant自动从vss下载代码并编译到自动发布 分类: 计算机相关东西 2006-09-18 17:40 1540人阅读 评论 (0) 收藏 举报 项目做了好久,每次都要手工从vss下载代码,再编译,再发布,觉得好麻烦的,以前项目比较忙就没有时间来研究他,昨天无意在网上看到一个基于wls自 动发布过来,个人认为可以改下为我们所用了,由于自己以前对ant这些东西不是蛮了解,只好先硬着头皮到网上找些这方面的资料看看,我想应该比较容易搞定 的吧. 搞清了ant的一些基本概率,就看看别人写的bulid.

  • 写了个在window平台上自动发布eclipse 的web应用ant 程序(纯属学习)实用性不强

    写了个在window平台上自动发布eclipse 的web应用ant 程序(纯属学习)实用性不强,不喜勿拍砖! <?xml version="1.0" encoding="utf-8"?> <project name="tomdog" basedir="." default="move_project"> <!-- 执行方法: cmd 到build.xml所在当前目录,执行an

  • Android程序自动更新的初步实现

    这只是初步的实现,并没有加入自动编译等功能.需要手动更改更新的xml文件和最新的apk. 共涉及到四个文件! 一.客户端 AndroidUpdateTestActivity.cs:程序首页 main.xml:首页布局 Update.cs:更新类 softupdate_progress:更新等待界面 Updage.cs package majier.test; import java.io.File; import java.io.FileOutputStream; import java.io.

  • 串口控件MSCOMM的注册方法(使用MSCOMM串口控件程序的发布问题)

    使用MSCOMM串口控件编程虽然方便,但发布时不非常不方便了,因为MSCOMM控件是基于Activex的控件,许多用户机器上默认是没有安装这个控件,MSCOMM控件在安装时是需要注册的,下面介绍几种注册方法: 一.手工注册的方法如下: 1.把MSCOMM32.OCX拷贝到system32下 2.在"开始"菜单的"运行"里输入以下内容后点确定 regsvr32 MSCOMM32.OCX 这时就成功注册MSCOMM串口控件了,如下所示: 但是这个方法对用户来说复杂了,总

Tags: