Guest User

Phing Build Example

a guest
Apr 26th, 2010
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 4.12 KB | None | 0 0
  1. <?xml version="1.0"?>
  2. <project basedir="." default="deploy" name="phplab.viscomp.bg-production">
  3.  
  4. <!-- main sequence -->
  5. <target name="deploy">
  6.     <property file="production.properties"/>
  7.     <delete dir="${release.dir}" failonerror="true" verbose="false" includeemptydirs="true" />
  8.     <delete dir="${release.tmp.dir}" failonerror="true" verbose="false" includeemptydirs="true" />
  9.     <mkdir dir="${release.dir}" />
  10.     <mkdir dir="${release.tmp.dir}" />
  11.     <phingcall target="svnexport" />
  12.     <phingcall target="substitutions" />
  13.     <phingcall target="copy.sources" />
  14.     <!-- <phingcall target="remote-exec-update_live" /> -->
  15. </target>
  16.  
  17. <target name="svnexport">
  18.     <svnexport
  19.         svnpath="/usr/bin/svn"
  20.         username="${repository.user}"
  21.         password="${repository.pass}"
  22.         force="true"
  23.         nocache="true"
  24.         repositoryurl="${repository.url}"
  25.         todir="${release.tmp.dir}" />
  26. </target>
  27.  
  28. <target name="substitutions">
  29.  
  30.     <!-- app/config/database.php substitutions -->
  31.     <fileset dir="${release.tmp.dir}" id="subs.app.config.database.php">
  32.         <include name="app/config/database.php" />
  33.     </fileset>
  34.  
  35.     <!-- app/config/core.php substitutions -->
  36.     <fileset dir="${release.tmp.dir}" id="subs.app.config.core.php">
  37.         <include name="app/config/core.php" />
  38.     </fileset>
  39.  
  40.     <!-- app/config/bootstrap.php substitutions -->
  41.     <fileset dir="${release.tmp.dir}" id="subs.app.config.bootstrap.php">
  42.         <include name="app/config/bootstrap.php" />
  43.     </fileset>
  44.  
  45.     <!-- susbtitutions for app/config/database.php -->
  46.     <reflexive>
  47.         <fileset refid="subs.app.config.database.php"/>
  48.         <filterchain>
  49.             <replaceregexp>
  50.                 <regexp pattern="'host'.*=>.*'.*',"
  51.                     replace="'host' => '${subs.db.host}'," />
  52.                 <regexp pattern="'login'.*=>.*'.*',"
  53.                     replace="'login' => '${subs.db.login}'," />
  54.                 <regexp pattern="'password'.*=>.*'.*',"
  55.                     replace="'password' => '${subs.db.password}'," />
  56.                 <regexp pattern="'database'.*=>.*'.*',"
  57.                     replace="'database' => '${subs.db.database}'," />
  58.                 <regexp pattern="'encoding'.*=>.*'.*',"
  59.                     replace="'encoding' => '${subs.db.encoding}'," />
  60.             </replaceregexp>
  61.         </filterchain>
  62.     </reflexive>
  63.    
  64.     <!-- susbtitutions for app/config/core.php -->
  65.     <reflexive>
  66.         <fileset refid="subs.app.config.core.php"/>
  67.         <filterchain>
  68.             <replaceregexp>
  69.                 <regexp pattern="Configure::write.*\(.*debug.*,.*\)"
  70.                     replace="Configure::write('debug', ${subs.core.debug.level})" />
  71.             </replaceregexp>
  72.         </filterchain>
  73.     </reflexive>
  74.  
  75.     <!-- susbtitutions for app/config/bootstrap.php -->
  76.     <reflexive>
  77.         <fileset refid="subs.app.config.bootstrap.php"/>
  78.         <filterchain>
  79.             <replaceregexp>
  80.                 <regexp pattern="Configure::write.*\(.*smtp_host.*,.*\)"
  81.                     replace="Configure::write('Email.smtp_host', '${subs.smtp.host}')" />
  82.                 <regexp pattern="Configure::write.*\(.*smtp_username.*,.*\)"
  83.                     replace="Configure::write('Email.smtp_username', '${subs.smtp.username}')" />
  84.                 <regexp pattern="Configure::write.*\(.*smtp_password.*,.*\)"
  85.                     replace="Configure::write('Email.smtp_password', '${subs.smtp.password}')" />
  86.                 <regexp pattern="Configure::write.*\(.*from_address.*,.*\)"
  87.                     replace="Configure::write('Email.from_address', '${subs.email.from.address}')" />
  88.                 <regexp pattern="Configure::write.*\(.*from_name.*,.*\)"
  89.                     replace="Configure::write('Email.from_name', '${subs.email.from.name}')" />
  90.                 <regexp pattern="Configure::write.*\(.*subject_prefix.*,.*\)"
  91.                     replace="Configure::write('Email.subject_prefix', '${subs.email.subject.prefix}')" />
  92.             </replaceregexp>
  93.         </filterchain>
  94.     </reflexive>
  95.  
  96.  
  97. </target>
  98.  
  99. <target name="copy.sources">
  100.  
  101.     <!-- a fileset for the source code -->
  102.     <fileset dir="${release.tmp.dir}" id="files.sourcecode">
  103.         <include name="**" />
  104.         <exclude name="**/.svn/**"/>
  105.     </fileset>
  106.  
  107.     <copy todir="${release.dir}" >
  108.         <fileset refid="files.sourcecode"/>
  109.     </copy>
  110.  
  111.     <property
  112.         name="rsync.command"
  113.         value="rsync -avz --delete-before
  114.             --exclude app/tmp/
  115.             --exclude app/webroot/media/filter/
  116.             --exclude app/webroot/media/transfer/
  117.             . ${rsync.user}@${rsync.host}:${rsync.remote.folder}" />
  118.     <exec
  119.         command="${rsync.command}"
  120.         dir="${release.dir}" />
  121.  
  122. </target>
  123.  
  124.  
  125. </project>
Advertisement
Add Comment
Please, Sign In to add comment