comparison 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
comparison
equal deleted inserted replaced
5:18254e8d1b72 6:b8f70d8216b3
1 <project name="w4m.tool.lcmsmatching" default="all">
2
3 <dirname property="this.dir" file="${ant.file.w4m.tool.lcmsmatching}"/>
4 <property name="conda.dir" value="${user.home}/w4m-conda"/>
5 <property name="planemo.dir" value="${user.home}/.planemo"/>
6
7 <!--~~~~~~~~~~~~~~~~~
8 ~ PUBLIC PROPERTIES ~
9 ~~~~~~~~~~~~~~~~~~-->
10
11 <!-- These properties can be set when calling Ant: `ant -DPROP=value ...`. -->
12
13 <property name="TIMESTAMP" value="true"/>
14 <property name="VERSION" value="true"/>
15 <property name="DIST.TEST" value="true"/>
16 <property name="TOOL.PREFIX" value="$__tool_directory__/"/>
17 <property name="PKG.PREFIX" value="w4m-tool-lcmsmatching"/>
18
19 <!--~~~~~~~~~~~~~~~~~~~
20 ~ INTERNAL PROPERTIES ~
21 ~~~~~~~~~~~~~~~~~~~~-->
22
23 <!-- Version -->
24 <property name="version" value="2.1.3"/>
25 <condition property="version.suffix" value="" else="-${version}">
26 <isfalse value="${VERSION}"/>
27 </condition>
28
29 <!-- Distribution directories -->
30 <property name="dist.dir" value="dist"/>
31 <property name="dist.code.dir" value="${dist.dir}/code"/>
32 <property name="dist.test.dir" value="${dist.dir}/test"/>
33
34 <!-- Tool XML paths -->
35 <property name="tool.xml" value="lcmsmatching.xml"/>
36 <property name="orig.tool.xml" value="${tool.xml}"/>
37 <property name="dest.tool.xml" value="${dist.code.dir}/${tool.xml}"/>
38
39 <!-- Time stamp -->
40 <tstamp/>
41 <property name="timestamp" value="${DSTAMP}-${TSTAMP}"/>
42 <condition property="timestamp.suffix" value="" else="-${timestamp}">
43 <isfalse value="${TIMESTAMP}"/>
44 </condition>
45
46 <!-- Package -->
47 <property name="pkg.ext" value="tar.gz"/>
48 <property name="pkg.name" value="${PKG.PREFIX}${version.suffix}${timestamp.suffix}"/>
49 <property name="pkg.path" value="${dist.dir}/${pkg.name}.${pkg.ext}"/>
50
51 <!--~~~
52 ~ ALL ~
53 ~~~~~-->
54
55 <target name="all"/>
56
57 <!--~~~~
58 ~ DIST ~
59 ~~~~~-->
60
61 <target name="dist" depends="dist.code,dist.tar,dist.test"/>
62
63 <!--~~~~~~~~
64 ~ DIST W4M ~
65 ~~~~~~~~~-->
66
67 <target name="dist.w4m" depends="w4m.code,dist.tar,dist.test"/>
68
69 <!--~~~~~~~~~
70 ~ DIST TEST ~
71 ~~~~~~~~~~-->
72
73 <target name="dist.test" if="${DIST.TEST}">
74
75 <!-- Make temp dir -->
76 <delete dir="${dist.test.dir}"/>
77 <mkdir dir="${dist.test.dir}"/>
78
79 <!-- Extract package in temp dir -->
80 <untar src="${pkg.path}" dest="${dist.test.dir}" compression="gzip"/>
81 <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. -->
82
83 <!-- Run search-mz on sample input file -->
84 <exec executable="${dist.test.dir}/search-mz" failonerror="true">
85 <arg value="-d"/>
86 <arg value="file"/>
87 <arg value="--url"/>
88 <arg value="test/filedb.tsv"/>
89 <arg value="-m"/>
90 <arg value="pos"/>
91 <arg value="-i"/>
92 <arg value="test/mzrt-input.tsv"/>
93 <arg value="-o"/>
94 <arg value="mzrt-output.tsv"/>
95 </exec>
96
97 </target>
98
99 <!--~~~~~~~~
100 ~ W4M CODE ~
101 ~~~~~~~~~-->
102
103 <target name="w4m.code" depends="dist.code">
104
105 <!-- Copy and transform tool XML file. -->
106 <copy file="${orig.tool.xml}" tofile="${dest.tool.xml}"/>
107
108 <!-- Copy python script. -->
109 <copy todir="${dist.code.dir}">
110 <fileset dir="." includes="*.py"/>
111 </copy>
112 </target>
113
114 <!--~~~~~~~~~
115 ~ DIST CODE ~
116 ~~~~~~~~~~-->
117
118 <target name="dist.code">
119
120 <!-- Clean directory -->
121 <delete dir="${dist.code.dir}"/>
122 <mkdir dir="${dist.code.dir}"/>
123
124 <!-- Copy R code -->
125 <copy todir="${dist.code.dir}">
126 <fileset dir="." includes="search-mz,*.R"/>
127 </copy>
128
129 </target>
130
131 <!--~~~~~~~~
132 ~ DIST TAR ~
133 ~~~~~~~~~-->
134
135 <target name="dist.tar">
136
137 <!-- Build tar file -->
138 <tar destfile="${pkg.path}" compression="gzip">
139
140 <!-- Include script with execution rights -->
141 <tarfileset dir="${dist.code.dir}" filemode="755">
142 <include name="search-mz"/>
143 </tarfileset>
144
145 <!-- Include remaining code and data files -->
146 <tarfileset dir="${dist.code.dir}">
147 <include name="**"/>
148 <exclude name="search-mz"/>
149 </tarfileset>
150 </tar>
151 </target>
152
153 <!--~~~~~
154 ~ CLEAN ~
155 ~~~~~~-->
156
157 <target name="clean">
158 <delete dir="${dist.dir}"/>
159 <delete dir="${conda.dir}"/>
160 <delete dir="${planemo.dir}"/>
161 </target>
162
163 <!--~~~~~~~~~~~
164 ~ GALAXY TEST ~
165 ~~~~~~~~~~~~-->
166
167 <target name="galaxy.test" depends="planemo.lint,planemo.test"/>
168
169 <!--~~~~~~~~~~~~
170 ~ PLANEMO LINT ~
171 ~~~~~~~~~~~~~-->
172
173 <target name="planemo.lint" depends="planemo.env">
174 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
175 <arg value="lint"/>
176 <arg value="--no_xsd"/>
177 <arg value="${tool.xml}"/>
178 </exec>
179 </target>
180
181 <!--~~~~~~~~~~~~
182 ~ PLANEMO TEST ~
183 ~~~~~~~~~~~~~-->
184
185 <target name="planemo.test" depends="planemo.conda.install">
186 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
187 <arg value="test"/>
188 <arg value="--conda_prefix"/>
189 <arg value="${conda.dir}"/>
190 <arg value="--galaxy_branch"/>
191 <arg value="release_16.01"/>
192 <arg value="--conda_dependency_resolution"/>
193 <arg value="${tool.xml}"/>
194 </exec>
195 </target>
196
197 <!--~~~~~~~~~~~~~~~~~~~~~
198 ~ PLANEMO CONDA INSTALL ~
199 ~~~~~~~~~~~~~~~~~~~~~~-->
200
201 <target name="planemo.conda.install" depends="planemo.conda.init,planemo.env">
202 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
203 <arg value="conda_install"/>
204 <arg value="--conda_prefix"/>
205 <arg value="${conda.dir}"/>
206 <arg value="${tool.xml}"/>
207 </exec>
208 </target>
209
210 <!--~~~~~~~~~~~~~~~~~~
211 ~ PLANEMO CONDA INIT ~
212 ~~~~~~~~~~~~~~~~~~~-->
213
214 <target name="planemo.conda.init">
215 <exec executable="planemo" failonerror="true">
216 <arg value="conda_init"/>
217 <arg value="--conda_prefix"/>
218 <arg value="${conda.dir}"/>
219 </exec>
220 </target>
221
222 <!--~~~~~~~~~~~~~~~~~
223 ~ PLANEMO SHED LINT ~
224 ~~~~~~~~~~~~~~~~~~-->
225
226 <target name="planemo.shed.lint" depends="planemo.env">
227 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
228 <arg value="shed_lint"/>
229 <arg value="--tools"/>
230 </exec>
231 </target>
232
233 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234 ~ PLANEMO TEST TOOLSHED CREATE ~
235 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
236
237 <target name="planemo.testtoolshed.create" depends="planemo.env">
238 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
239 <arg value="shed_create"/>
240 <arg value="--shed_target"/>
241 <arg value="testtoolshed"/>
242 </exec>
243 </target>
244
245 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~
246 ~ PLANEMO TEST TOOLSHED DIFF ~
247 ~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
248
249 <target name="planemo.testtoolshed.diff" depends="planemo.env">
250 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
251 <arg value="shed_diff"/>
252 <arg value="--shed_target"/>
253 <arg value="testtoolshed"/>
254 </exec>
255 </target>
256
257 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258 ~ PLANEMO TEST TOOLSHED UPDATE ~
259 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
260
261 <target name="planemo.testtoolshed.update" depends="planemo.env">
262 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
263 <arg value="shed_update"/>
264 <arg value="--check_diff"/>
265 <arg value="--shed_target"/>
266 <arg value="testtoolshed"/>
267 </exec>
268 </target>
269
270 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~
271 ~ PLANEMO TEST TOOLSHED TEST ~
272 ~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
273
274 <target name="planemo.testtoolshed.test" depends="planemo.env">
275 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
276 <arg value="shed_test"/>
277 <arg value="--shed_target"/>
278 <arg value="testtoolshed"/>
279 <arg value="--install_galaxy"/>
280 <arg value="--galaxy_branch"/>
281 <arg value="release_16.01"/>
282 </exec>
283 </target>
284
285 <!--~~~~~~~~~~~~~~~~~~~~~~~
286 ~ PLANEMO TOOLSHED CREATE ~
287 ~~~~~~~~~~~~~~~~~~~~~~~~-->
288
289 <target name="planemo.toolshed.create" depends="planemo.env">
290 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
291 <arg value="shed_create"/>
292 <arg value="--shed_target"/>
293 <arg value="toolshed"/>
294 </exec>
295 </target>
296
297 <!--~~~~~~~~~~~~~~~~~~~~~
298 ~ PLANEMO TOOLSHED DIFF ~
299 ~~~~~~~~~~~~~~~~~~~~~~-->
300
301 <target name="planemo.toolshed.diff" depends="planemo.env">
302 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
303 <arg value="shed_diff"/>
304 <arg value="--shed_target"/>
305 <arg value="toolshed"/>
306 </exec>
307 </target>
308
309 <!--~~~~~~~~~~~~~~~~~~~~~~~
310 ~ PLANEMO TOOLSHED UPDATE ~
311 ~~~~~~~~~~~~~~~~~~~~~~~~-->
312
313 <target name="planemo.toolshed.update" depends="planemo.env">
314 <exec executable="planemo" dir="${dist.code.dir}" failonerror="true">
315 <arg value="shed_update"/>
316 <arg value="--check_diff"/>
317 <arg value="--shed_target"/>
318 <arg value="toolshed"/>
319 </exec>
320 </target>
321
322 <!--~~~~~~~~~~~
323 ~ PLANEMO ENV ~
324 ~~~~~~~~~~~~-->
325
326 <target name="planemo.env" depends="w4m.code">
327 <chmod file="${dist.code.dir}/search-mz" perm="u+x"/>
328 <ant dir="test" target="input.files"/>
329 <mkdir dir="${dist.code.dir}/test-data"/>
330 <copy todir="${dist.code.dir}/test-data">
331 <fileset dir="test" includes="filedb.tsv"/>
332 <fileset dir="test" includes="mz-input-small.tsv"/>
333 <fileset dir="test/res" includes="filedb-small-mz-match-*"/>
334 </copy>
335 <copy file="shed.yml" tofile="${dist.code.dir}/.shed.yml"/>
336 </target>
337
338 <!--************************************************
339 ******************** DEPRECATED ********************
340 *************************************************-->
341
342 <!--~~~~~~~~~~~~~
343 ~ UPDATE W4M VM ~
344 ~~~~~~~~~~~~~~-->
345
346 <!-- This task is used when developping, for updating quickly the tool inside the local W4M virtual machine. -->
347 <target name="update.w4m.vm" depends="clean,dist">
348
349 <property name="w4m.login" value="galaxy@w4m"/>
350 <property name="tool.path" value="galaxy-pfem/tools/metabolomics/annotation/lcmsmatching"/>
351
352 <!-- Stop Galaxy -->
353 <exec executable="ssh" failonerror="true">
354 <arg value="${w4m.login}"/>
355 <arg value="/sbin/service galaxy stop"/>
356 </exec>
357
358 <!-- Remove current tool version -->
359 <exec executable="ssh" failonerror="true">
360 <arg value="${w4m.login}"/>
361 <arg value="rm -rf ${tool.path}"/>
362 </exec>
363
364 <!-- Remove old packages on W4M instance -->
365 <exec executable="ssh" failonerror="true">
366 <arg value="${w4m.login}"/>
367 <arg value="rm -f ${PKG.PREFIX}-*.${pkg.ext}"/>
368 </exec>
369
370 <!-- Copy new package on W4M instance -->
371 <exec executable="scp" failonerror="true">
372 <arg value="${dist.dir}/${pkg.name}.${pkg.ext}"/>
373 <arg value="${w4m.login}:."/>
374 </exec>
375
376 <!-- Make tool directory -->
377 <exec executable="ssh" failonerror="true">
378 <arg value="${w4m.login}"/>
379 <arg value="mkdir -p ${tool.path}"/>
380 </exec>
381
382 <!-- Install new tool version -->
383 <exec executable="ssh" failonerror="true">
384 <arg value="${w4m.login}"/>
385 <arg value="tar -xzf ${pkg.name}.${pkg.ext} -C ${tool.path}"/>
386 </exec>
387
388 <!-- Restart Galaxy -->
389 <exec executable="ssh" failonerror="true">
390 <arg value="${w4m.login}"/>
391 <arg value="/sbin/service galaxy start"/>
392 </exec>
393
394 </target>
395
396 </project>