Mercurial > repos > prog > lcmsmatching
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.xml Mon Mar 27 06:27:29 2017 -0400 @@ -0,0 +1,396 @@ +<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>
