Mercurial > repos > prog > lcmsmatching
view build.xml @ 6:b8f70d8216b3 draft
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit b3a4e34cf9356447ae3507cc6fe2ff6a1f24afbc-dirty
| author | prog |
|---|---|
| date | Mon, 27 Mar 2017 06:27:29 -0400 |
| parents | |
| children |
line wrap: on
line source
<project name="w4m.tool.lcmsmatching" default="all"> <dirname property="this.dir" file="${ant.file.w4m.tool.lcmsmatching}"/> <property name="conda.dir" value="${user.home}/w4m-conda"/> <property name="planemo.dir" value="${user.home}/.planemo"/> <!--~~~~~~~~~~~~~~~~~ ~ PUBLIC PROPERTIES ~ ~~~~~~~~~~~~~~~~~~--> <!-- These properties can be set when calling Ant: `ant -DPROP=value ...`. --> <property name="TIMESTAMP" value="true"/> <property name="VERSION" value="true"/> <property name="DIST.TEST" value="true"/> <property name="TOOL.PREFIX" value="$__tool_directory__/"/> <property name="PKG.PREFIX" value="w4m-tool-lcmsmatching"/> <!--~~~~~~~~~~~~~~~~~~~ ~ INTERNAL PROPERTIES ~ ~~~~~~~~~~~~~~~~~~~~--> <!-- Version --> <property name="version" value="2.1.3"/> <condition property="version.suffix" value="" else="-${version}"> <isfalse value="${VERSION}"/> </condition> <!-- Distribution directories --> <property name="dist.dir" value="dist"/> <property name="dist.code.dir" value="${dist.dir}/code"/> <property name="dist.test.dir" value="${dist.dir}/test"/> <!-- Tool XML paths --> <property name="tool.xml" value="lcmsmatching.xml"/> <property name="orig.tool.xml" value="${tool.xml}"/> <property name="dest.tool.xml" value="${dist.code.dir}/${tool.xml}"/> <!-- Time stamp --> <tstamp/> <property name="timestamp" value="${DSTAMP}-${TSTAMP}"/> <condition property="timestamp.suffix" value="" else="-${timestamp}"> <isfalse value="${TIMESTAMP}"/> </condition> <!-- Package --> <property name="pkg.ext" value="tar.gz"/> <property name="pkg.name" value="${PKG.PREFIX}${version.suffix}${timestamp.suffix}"/> <property name="pkg.path" value="${dist.dir}/${pkg.name}.${pkg.ext}"/> <!--~~~ ~ ALL ~ ~~~~~--> <target name="all"/> <!--~~~~ ~ DIST ~ ~~~~~--> <target name="dist" depends="dist.code,dist.tar,dist.test"/> <!--~~~~~~~~ ~ DIST W4M ~ ~~~~~~~~~--> <target name="dist.w4m" depends="w4m.code,dist.tar,dist.test"/> <!--~~~~~~~~~ ~ DIST TEST ~ ~~~~~~~~~~--> <target name="dist.test" if="${DIST.TEST}"> <!-- Make temp dir --> <delete dir="${dist.test.dir}"/> <mkdir dir="${dist.test.dir}"/> <!-- Extract package in temp dir --> <untar src="${pkg.path}" dest="${dist.test.dir}" compression="gzip"/> <chmod file="${dist.test.dir}/search-mz" perm="u+x"/> <!-- This file should be already executable, since it has been put executable inside the tar. It seems the untar task of Ant does not handle the file permissions. --> <!-- Run search-mz on sample input file --> <exec executable="${dist.test.dir}/search-mz" failonerror="true"> <arg value="-d"/> <arg value="file"/> <arg value="--url"/> <arg value="test/filedb.tsv"/> <arg value="-m"/> <arg value="pos"/> <arg value="-i"/> <arg value="test/mzrt-input.tsv"/> <arg value="-o"/> <arg value="mzrt-output.tsv"/> </exec> </target> <!--~~~~~~~~ ~ W4M CODE ~ ~~~~~~~~~--> <target name="w4m.code" depends="dist.code"> <!-- Copy and transform tool XML file. --> <copy file="${orig.tool.xml}" tofile="${dest.tool.xml}"/> <!-- Copy python script. --> <copy todir="${dist.code.dir}"> <fileset dir="." includes="*.py"/> </copy> </target> <!--~~~~~~~~~ ~ DIST CODE ~ ~~~~~~~~~~--> <target name="dist.code"> <!-- Clean directory --> <delete dir="${dist.code.dir}"/> <mkdir dir="${dist.code.dir}"/> <!-- Copy R code --> <copy todir="${dist.code.dir}"> <fileset dir="." includes="search-mz,*.R"/> </copy> </target> <!--~~~~~~~~ ~ DIST TAR ~ ~~~~~~~~~--> <target name="dist.tar"> <!-- Build tar file --> <tar destfile="${pkg.path}" compression="gzip"> <!-- Include script with execution rights --> <tarfileset dir="${dist.code.dir}" filemode="755"> <include name="search-mz"/> </tarfileset> <!-- Include remaining code and data files --> <tarfileset dir="${dist.code.dir}"> <include name="**"/> <exclude name="search-mz"/> </tarfileset> </tar> </target> <!--~~~~~ ~ CLEAN ~ ~~~~~~--> <target name="clean"> <delete dir="${dist.dir}"/> <delete dir="${conda.dir}"/> <delete dir="${planemo.dir}"/> </target> <!--~~~~~~~~~~~ ~ GALAXY TEST ~ ~~~~~~~~~~~~--> <target name="galaxy.test" depends="planemo.lint,planemo.test"/> <!--~~~~~~~~~~~~ ~ PLANEMO LINT ~ ~~~~~~~~~~~~~--> <target name="planemo.lint" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="lint"/> <arg value="--no_xsd"/> <arg value="${tool.xml}"/> </exec> </target> <!--~~~~~~~~~~~~ ~ PLANEMO TEST ~ ~~~~~~~~~~~~~--> <target name="planemo.test" depends="planemo.conda.install"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="test"/> <arg value="--conda_prefix"/> <arg value="${conda.dir}"/> <arg value="--galaxy_branch"/> <arg value="release_16.01"/> <arg value="--conda_dependency_resolution"/> <arg value="${tool.xml}"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO CONDA INSTALL ~ ~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.conda.install" depends="planemo.conda.init,planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="conda_install"/> <arg value="--conda_prefix"/> <arg value="${conda.dir}"/> <arg value="${tool.xml}"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~ ~ PLANEMO CONDA INIT ~ ~~~~~~~~~~~~~~~~~~~--> <target name="planemo.conda.init"> <exec executable="planemo" failonerror="true"> <arg value="conda_init"/> <arg value="--conda_prefix"/> <arg value="${conda.dir}"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~ ~ PLANEMO SHED LINT ~ ~~~~~~~~~~~~~~~~~~--> <target name="planemo.shed.lint" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_lint"/> <arg value="--tools"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TEST TOOLSHED CREATE ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.testtoolshed.create" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_create"/> <arg value="--shed_target"/> <arg value="testtoolshed"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TEST TOOLSHED DIFF ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.testtoolshed.diff" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_diff"/> <arg value="--shed_target"/> <arg value="testtoolshed"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TEST TOOLSHED UPDATE ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.testtoolshed.update" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_update"/> <arg value="--check_diff"/> <arg value="--shed_target"/> <arg value="testtoolshed"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TEST TOOLSHED TEST ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.testtoolshed.test" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_test"/> <arg value="--shed_target"/> <arg value="testtoolshed"/> <arg value="--install_galaxy"/> <arg value="--galaxy_branch"/> <arg value="release_16.01"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TOOLSHED CREATE ~ ~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.toolshed.create" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_create"/> <arg value="--shed_target"/> <arg value="toolshed"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TOOLSHED DIFF ~ ~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.toolshed.diff" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_diff"/> <arg value="--shed_target"/> <arg value="toolshed"/> </exec> </target> <!--~~~~~~~~~~~~~~~~~~~~~~~ ~ PLANEMO TOOLSHED UPDATE ~ ~~~~~~~~~~~~~~~~~~~~~~~~--> <target name="planemo.toolshed.update" depends="planemo.env"> <exec executable="planemo" dir="${dist.code.dir}" failonerror="true"> <arg value="shed_update"/> <arg value="--check_diff"/> <arg value="--shed_target"/> <arg value="toolshed"/> </exec> </target> <!--~~~~~~~~~~~ ~ PLANEMO ENV ~ ~~~~~~~~~~~~--> <target name="planemo.env" depends="w4m.code"> <chmod file="${dist.code.dir}/search-mz" perm="u+x"/> <ant dir="test" target="input.files"/> <mkdir dir="${dist.code.dir}/test-data"/> <copy todir="${dist.code.dir}/test-data"> <fileset dir="test" includes="filedb.tsv"/> <fileset dir="test" includes="mz-input-small.tsv"/> <fileset dir="test/res" includes="filedb-small-mz-match-*"/> </copy> <copy file="shed.yml" tofile="${dist.code.dir}/.shed.yml"/> </target> <!--************************************************ ******************** DEPRECATED ******************** *************************************************--> <!--~~~~~~~~~~~~~ ~ UPDATE W4M VM ~ ~~~~~~~~~~~~~~--> <!-- This task is used when developping, for updating quickly the tool inside the local W4M virtual machine. --> <target name="update.w4m.vm" depends="clean,dist"> <property name="w4m.login" value="galaxy@w4m"/> <property name="tool.path" value="galaxy-pfem/tools/metabolomics/annotation/lcmsmatching"/> <!-- Stop Galaxy --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="/sbin/service galaxy stop"/> </exec> <!-- Remove current tool version --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="rm -rf ${tool.path}"/> </exec> <!-- Remove old packages on W4M instance --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="rm -f ${PKG.PREFIX}-*.${pkg.ext}"/> </exec> <!-- Copy new package on W4M instance --> <exec executable="scp" failonerror="true"> <arg value="${dist.dir}/${pkg.name}.${pkg.ext}"/> <arg value="${w4m.login}:."/> </exec> <!-- Make tool directory --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="mkdir -p ${tool.path}"/> </exec> <!-- Install new tool version --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="tar -xzf ${pkg.name}.${pkg.ext} -C ${tool.path}"/> </exec> <!-- Restart Galaxy --> <exec executable="ssh" failonerror="true"> <arg value="${w4m.login}"/> <arg value="/sbin/service galaxy start"/> </exec> </target> </project>
