build.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="UNA" basedir="." default="test">
  3. <property file="${project.basedir}/build.properties" override="true" />
  4. <property name="build" value="0" override="yes" />
  5. <property name="modules" value="" override="yes" />
  6. <if>
  7. <not><isset property="composer" /></not>
  8. <then><property name="composer" value="${project.basedir}/tests/composer.phar" override="yes" /></then>
  9. </if>
  10. <if>
  11. <not><isset property="php" /></not>
  12. <then><property name="php" value="php" override="yes" /></then>
  13. </if>
  14. <if>
  15. <not><isset property="db_name" /></not>
  16. <then><property name="db_name" value="test" override="yes" /></then>
  17. </if>
  18. <if>
  19. <not><isset property="db_user" /></not>
  20. <then><property name="db_user" value="root" override="yes" /></then>
  21. </if>
  22. <if>
  23. <not><isset property="db_password" /></not>
  24. <then><property name="db_password" value="" override="yes" /></then>
  25. </if>
  26. <if>
  27. <not><isset property="http_host" /></not>
  28. <then><property name="http_host" value="localhost" override="yes" /></then>
  29. </if>
  30. <if>
  31. <not><isset property="http_path" /></not>
  32. <then><property name="http_path" value="/" override="yes" /></then>
  33. </if>
  34. <if>
  35. <not><isset property="php_self" /></not>
  36. <then><property name="php_self" value="${http_path}install/index.php" override="yes" /></then>
  37. </if>
  38. <if>
  39. <and>
  40. <not><isset property="doc_root" /></not>
  41. <isset property="deploy_path" />
  42. </and>
  43. <then><property name="doc_root" value="${deploy_path}" override="yes" /></then>
  44. </if>
  45. <fileset dir="${project.basedir}" defaultexcludes="true" id="files_dist">
  46. <include name="**/*" />
  47. <exclude name="**/*.swp" />
  48. <exclude name="inc/header*" />
  49. <exclude name="build.xml" />
  50. <exclude name="build.properties" />
  51. <exclude name="storage/**/*" />
  52. <exclude name="samples/**" />
  53. <exclude name="scripts/**" />
  54. <exclude name="tests/**" />
  55. <exclude name="packages/**" />
  56. <exclude name="upgrade/**" />
  57. </fileset>
  58. <fileset dir="${project.basedir}" defaultexcludes="true" id="doc_files">
  59. <include name="**/*" />
  60. <exclude name="**/*.swp" />
  61. <exclude name="inc/header*" />
  62. <exclude name="build.xml" />
  63. <exclude name="build.properties" />
  64. <exclude name="storage/**/*" />
  65. <exclude name="samples/**" />
  66. <exclude name="scripts/**" />
  67. <exclude name="tests/**" />
  68. <exclude name="packages/**" />
  69. <exclude name="upgrade/**" />
  70. <exclude name="cache/**" />
  71. <exclude name="cache_public/**" />
  72. <exclude name="logs/**" />
  73. <exclude name="tmp/**" />
  74. <exclude name="plugins/**" />
  75. <exclude name="plugins_public/**" />
  76. <exclude name="modules/boonex/sites/**" />
  77. <exclude name="modules/boonex/membership_pricing/**" />
  78. <exclude name="**/updates/**" />
  79. </fileset>
  80. <!-- ============================================ -->
  81. <!-- Target: prepare -->
  82. <!-- ============================================ -->
  83. <target name="prepare">
  84. <echo msg="Prepage: installing necessary components" />
  85. <exec command="${php} ${composer} install" dir="${project.basedir}/tests" checkreturn="true" />
  86. </target>
  87. <!-- ============================================ -->
  88. <!-- Target: install -->
  89. <!-- ============================================ -->
  90. <target name="install">
  91. <echo msg="Installing..." />
  92. <if>
  93. <not><isset property="install_base_dir" /></not>
  94. <then><property name="install_base_dir" value="${project.basedir}" /></then>
  95. </if>
  96. <exec command="${php} cmd.php -m ${modules} --db_name=${db_name} --db_user=${db_user} --db_password=${db_password} --server_http_host=${http_host} --server_php_self=${php_self} --server_doc_root=${doc_root}" dir="${install_base_dir}/install" checkreturn="true" />
  97. </target>
  98. <!-- ============================================ -->
  99. <!-- (DEFAULT) Target: test -->
  100. <!-- ============================================ -->
  101. <target name="test">
  102. <echo msg="Testing..." />
  103. <exec command="${php} vendor/bin/phpunit" dir="${project.basedir}/tests" checkreturn="true" />
  104. </target>
  105. <!-- ============================================ -->
  106. <!-- Target: package -->
  107. <!-- ============================================ -->
  108. <target name="package" depends="clean">
  109. <tstamp />
  110. <property name="package_name" value="UNA-${DSTAMP}-${build}" override="yes" />
  111. <property name="package_file" value="${package_name}.zip" />
  112. <echo msg="Packaging ${package_file} file..." />
  113. <mkdir dir="${project.basedir}/packages" />
  114. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  115. <delete file="${project.basedir}/packages/${package_file}" quiet="true" />
  116. <copy todir="${project.basedir}/packages/tmp/${package_name}">
  117. <fileset refid="files_dist" />
  118. </copy>
  119. <zip destfile="${project.basedir}/packages/${package_file}">
  120. <fileset dir="${project.basedir}/packages/tmp" defaultexcludes="true" />
  121. </zip>
  122. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  123. </target>
  124. <!-- ============================================ -->
  125. <!-- Target: package_upgrade -->
  126. <!-- ============================================ -->
  127. <target name="package_upgrade">
  128. <tstamp />
  129. <propertyprompt propertyName="version_from" promptText="Enter version to upgrade from" />
  130. <propertyprompt propertyName="version_to" promptText="Enter version to upgrade to" />
  131. <property name="package_name" value="UNA-Patch-v.${version_from}-to-v.${version_to}" override="yes" />
  132. <property name="package_file" value="${package_name}.zip" />
  133. <echo msg="Packaging ${package_file} file..." />
  134. <mkdir dir="${project.basedir}/packages" />
  135. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  136. <delete file="${project.basedir}/packages/${package_file}" quiet="true" />
  137. <copy todir="${project.basedir}/packages/tmp/${package_name}">
  138. <fileset dir="${project.basedir}/upgrade" defaultexcludes="true">
  139. <include name="classes/**/*" />
  140. <include name="BxDolUpgradeCron.php" />
  141. <include name="files/${version_from}-*/**/*" />
  142. <include name="files/*-${version_to}/**/*" />
  143. </fileset>
  144. </copy>
  145. <zip destfile="${project.basedir}/packages/${package_file}">
  146. <fileset dir="${project.basedir}/packages/tmp" defaultexcludes="true" />
  147. </zip>
  148. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  149. </target>
  150. <!-- ============================================ -->
  151. <!-- Target: package_all_modules -->
  152. <!-- ============================================ -->
  153. <target name="package_all_modules">
  154. <property name="vendor" value="boonex" override="yes" />
  155. <foreach param="module" target="package_module">
  156. <fileset dir="${project.basedir}/modules/${vendor}">
  157. <include name="*" />
  158. </fileset>
  159. </foreach>
  160. </target>
  161. <!-- ============================================ -->
  162. <!-- Target: package_module -->
  163. <!-- ============================================ -->
  164. <target name="package_module">
  165. <tstamp />
  166. <property name="vendor" value="boonex" override="yes" />
  167. <property name="module" value="antispam" override="yes" />
  168. <if>
  169. <available file="${project.basedir}/modules/${vendor}/${module}/install/config.php" type="file" />
  170. <then>
  171. <php expression="eval('include(&quot;${project.basedir}/modules/${vendor}/${module}/install/config.php&quot;); return $aConfig[&quot;version&quot;];')" returnProperty="module_version" />
  172. <property name="package_name" value="${module}" />
  173. <property name="package_file" value="${package_name}-v.${module_version}.zip" />
  174. <echo msg="Packaging ${package_file} file..." />
  175. <mkdir dir="${project.basedir}/packages" />
  176. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  177. <delete file="${project.basedir}/packages/${package_file}" quiet="true" />
  178. <copy todir="${project.basedir}/packages/tmp/${package_name}">
  179. <fileset dir="${project.basedir}/modules/${vendor}/${module}" defaultexcludes="true">
  180. <exclude name="updates/" />
  181. </fileset>
  182. </copy>
  183. <zip destfile="${project.basedir}/packages/${package_file}">
  184. <fileset dir="${project.basedir}/packages/tmp" defaultexcludes="true" />
  185. </zip>
  186. <delete dir="${project.basedir}/packages/tmp" quiet="true" />
  187. </then>
  188. </if>
  189. </target>
  190. <!-- ============================================ -->
  191. <!-- Target: deploy -->
  192. <!-- ============================================ -->
  193. <target name="deploy">
  194. <property name="deploy_path" value="/var/www" override="yes" />
  195. <echo msg="Deploying to '${deploy_path}' folder..." />
  196. <delete failonerror="true">
  197. <fileset dir="${deploy_path}">
  198. <include name="**/*" />
  199. </fileset>
  200. </delete>
  201. <copy todir="${deploy_path}">
  202. <fileset refid="files_dist" />
  203. </copy>
  204. <phingcall target="change_permissions">
  205. <property name="files_path" value="${deploy_path}" />
  206. </phingcall>
  207. <phingcall target="install">
  208. <property name="install_base_dir" value="${deploy_path}" />
  209. </phingcall>
  210. <delete dir="${deploy_path}/install" failonerror="true" />
  211. </target>
  212. <!-- ============================================ -->
  213. <!-- Target: copy files for doc generation -->
  214. <!-- ============================================ -->
  215. <target name="copy_for_doc">
  216. <property name="path" value="/tmp/doc_files" override="yes" />
  217. <echo msg="Copying to '${path}' folder..." />
  218. <delete failonerror="true">
  219. <fileset dir="${path}">
  220. <include name="**/*" />
  221. </fileset>
  222. </delete>
  223. <copy todir="${path}">
  224. <fileset refid="doc_files" />
  225. </copy>
  226. </target>
  227. <!-- ============================================ -->
  228. <!-- Target: change permissions -->
  229. <!-- ============================================ -->
  230. <target name="change_permissions">
  231. <property name="files_path" value="${project.basedir}" override="yes" />
  232. <echo msg="Change permissions in '${files_path}' folder..." />
  233. <chmod file="${files_path}/cache" mode="0777" />
  234. <chmod file="${files_path}/cache_public" mode="0777" />
  235. <chmod file="${files_path}/logs" mode="0777" />
  236. <chmod file="${files_path}/tmp" mode="0777" />
  237. <chmod file="${files_path}/storage" mode="0777" />
  238. <chmod file="${files_path}/plugins/ffmpeg/ffmpeg.exe" mode="0755" />
  239. </target>
  240. <!-- ============================================ -->
  241. <!-- Target: clean -->
  242. <!-- ============================================ -->
  243. <target name="clean">
  244. <echo msg="Cleaning..." />
  245. <delete dir="${project.basedir}/tests/vendor" quiet="true" />
  246. <delete includeemptydirs="true">
  247. <fileset dir="${project.basedir}/cache">
  248. <include name="**/*" />
  249. <exclude name=".htaccess" />
  250. </fileset>
  251. </delete>
  252. <delete includeemptydirs="true">
  253. <fileset dir="${project.basedir}/cache_public">
  254. <include name="**/*" />
  255. <exclude name=".htaccess" />
  256. </fileset>
  257. </delete>
  258. <delete includeemptydirs="true">
  259. <fileset dir="${project.basedir}/logs">
  260. <include name="**/*" />
  261. <exclude name=".htaccess" />
  262. <exclude name="clover.xml" />
  263. <exclude name="phpcdp.xml" />
  264. <exclude name="junit.xml" />
  265. </fileset>
  266. </delete>
  267. <delete includeemptydirs="true">
  268. <fileset dir="${project.basedir}/tmp">
  269. <include name="**/*" />
  270. <exclude name=".htaccess" />
  271. </fileset>
  272. </delete>
  273. </target>
  274. <target name="clean_install" depends="clean">
  275. <echo msg="Install cleaning..." />
  276. <delete file="${project.basedir}/inc/header.inc.php" quiet="true" />
  277. </target>
  278. </project>