Phing y github

Estoy tratando de automatizar la implementación de código desde un repository privado de Github usando Phing pero teniendo problemas para encontrar algo que funcione como una export SVN.

He leído algunas publicaciones en git archive y git checkout-index pero he tenido problemas para conseguir que funcionen con github. Me da la printing de que están interesados ​​en que usemos la descarga zip, ya que pueden almacenar en caching esto, etc.

No me importaría download el file zip de github si hubiera una tarea simple en Phing para hacer esto, una simple tarea http no funcionó ya que está sobre https y supongo que primero se necesita algún tipo de authentication.

Logré usar la tarea gitclone en Phing, pero la carpeta oculta ".git" también está clonada, lo que está causando dolores de cabeza masivos … principalmente porque en comstackciones posteriores no puedo eliminar la carpeta de compilation ya que sugiere ciertos files .git, concretamente *. idx o * .pack están en uso.

¿Alguien ha tenido suerte con Phing y un repository privado de github?

Gracias

@AYK. Es malo, he estado explorando las opciones de implementación recientemente y creo que se desarrollará con Capistrano …

De todos modos, este fue mi script de construcción que terminé usando temporalmente con el consejo de la gente …

  • Supongamos que mi aplicación vive en "C: \ app"
  • Supongamos que este file build.xml vive en "C: \ app"
  • Supongamos que mi aplicación también contiene un git repo "C: \ app.git"
  • Elimine todos los directorys de compilation e implementación "C: \ app \ build" y "C: \ app \ deploy" que puedan existir de una compilation anterior
  • Haga los directorys "C: \ app \ build" y "C: \ app \ deploy", mantendrá el checkout de git y el código final para implementar
  • Al ejecutar el pago de git como se sugiere, se comtesting el código de git y se lo coloca en "C: \ app \ build"
  • Hay ciertos directorys como documentos que no quiero que salgan, así que copio los files que deseo implementar en "C: \ app \ deploy"

  • El problema que tuve con Phing es la parte scp, necesitaba ssh2 dll en PHP, que no tenía ni quería perder el time tratando de comstackr la fuente para ello.

  • Así que, en general, logré lo que originalmente quería con Phing, pero después de pasar una noche con Capistrano me convertí

== 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: prepanetworkingeploy --> <!-- ============================================ --> <target name="prepanetworkingeploy" 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="prepanetworkingeploy"> <echo msg="Deleting build dir" /> <delete dir="./build/" includeemptydirs="true" failonerror="true" /> </target> <!-- ============================================ --> <!-- Target: build --> <!-- ============================================ --> <target name="build" depends="cleanup, prepanetworkingeploy, gitcheckout, create, prepare"> <echo msg="Starting build ${build.time}" /> </target> </project>