我正在尝试使用phing自动部署私有github代码库中的代码,但在尝试找到类似SVN导出的东西时遇到了麻烦。
我读过一些关于git archive和git checkout-index的帖子,但一直在努力让它们与github一起工作。我得到的印象是,他们热衷于让我们使用zip下载,因为他们可以缓存这些内容。
如果Phing中有一个简单的任务可以做到这一点,我不会介意从github下载zip,一个简单的http任务是不能工作的,因为它是通过https的,我想首先需要某种类型的身份验证。
我设法在Phing中使用了gitclone任务,但".git“隐藏文件夹也被克隆了,这导致了大量的构建,因为在后续的构建中,我无法删除构建文件夹,因为它表明某些git文件,即*.idx或*.pack正在使用中。
有没有人在phing和一个私人的github repo上有什么收获?
谢谢
发布于 2012-05-03 22:32:39
@AYK我的错,最近一直在探索部署选项,并认为将与Capistrano滚动…
无论如何,这是我的构建脚本,我最终根据人们的建议临时使用了……
== build.xml ==
<?xml version="1.0" encoding="UTF-8"?>
<project description="" name="MyProject" default="build" basedir=".">
<property file="build.properties" />
<tstamp>
<format property="build.time" pattern="%Y%m%d_%H%I" />
</tstamp>
<!-- ============================================ -->
<!-- Target: prepare -->
<!-- ============================================ -->
<target name="prepare">
<echo msg="Deleting old build and deploy dirs" />
<delete dir="./build/" includeemptydirs="true" failonerror="true" />
<delete dir="./deploy/" includeemptydirs="true" failonerror="true" />
</target>
<!-- ============================================ -->
<!-- Target: create -->
<!-- ============================================ -->
<target name="create" depends="prepare">
<echo msg="Creating fresh build and deploy directories" />
<mkdir dir="./build/" />
<mkdir dir="./deploy/" />
</target>
<!-- ============================================ -->
<!-- Target: gitclone -->
<!-- ============================================ -->
<target name="gitcheckout" depends="create">
<echo msg="Checking out latest code" />
<exec command="git checkout-index --prefix ./build/ -a"></exec>
</target>
<!-- ============================================ -->
<!-- Target: preparedeploy -->
<!-- ============================================ -->
<target name="preparedeploy" depends="gitcheckout">
<echo msg="Preparing deploy" />
<copy todir="./deploy/" >
<fileset dir=".">
<include name="cgi-bin/**" />
<include name="htdocs/**" />
</fileset>
</copy>
<mkdir dir="./deploy/logs" />
</target>
<!-- ============================================ -->
<!-- Target: cleanup -->
<!-- ============================================ -->
<target name="cleanup" depends="preparedeploy">
<echo msg="Deleting build dir" />
<delete dir="./build/" includeemptydirs="true" failonerror="true" />
</target>
<!-- ============================================ -->
<!-- Target: build -->
<!-- ============================================ -->
<target name="build" depends="cleanup, preparedeploy, gitcheckout, create, prepare">
<echo msg="Starting build ${build.time}" />
</target>
</project>https://stackoverflow.com/questions/10246607
复制相似问题