Subversion Repositories DevTools

Rev

Rev 1915 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1913 mhunt 1
<project name="ant-release-task">
2
 
3
	<macrodef name="ant-release">
4
 
5
		<attribute name="package"        default="${ant.project.name}"/>
6
		<attribute name="release-target" default="-do-release"/>
7
 
8
		<sequential>
9
 
10
			<basename property="ant.buildfile.filename" file="${ant.file}"/>
11
			<dirname  property="ant.buildfile.path"     file="${ant.file}"/>
12
 
13
			<!-- Determine the logical path of the build (that is, the path that does not contain the drive letter) -->
14
			<propertyregex property = "ant.buildfile.lpath"
15
						   input    = "${ant.buildfile.path}"
16
						   regexp   = "[A-Za-z]\:\\(.*)"
17
						   select   = "\1"/>
18
 
19
			<antshield packageName="${ant.project.name}"/>
20
 
21
			<!-- These properties CAN be set by the Jants cclabel task, but I don't trust it any more. -->
22
			<!-- I plan to phase out the old cclabel stuff and make it into scripts.                   -->
23
			<property name="jants.build.label"      value="@{package}_${antshield.release}"/>
24
			<property name="jants.build.view.name"  value="${user.name}_jats_build_${jants.build.label}"/>
25
			<property name="jants.build.view.path"  value="O:\${jants.build.view.name}\${ant.buildfile.lpath}"/>
26
 
27
			<!--
28
			<ccmklbtype typename = "${jants.build.label}-TEST"
29
			            global   = "true"/>
30
 
31
			<ccmklabel typename="${jants.build.label}-TEST"
32
			           viewpath="${basedir}"/>-->
33
 
34
 
35
			<cclabel	package       = "@{package}"
36
						version       = "${antshield.release}"
37
						findCheckouts = "true"
38
						mkview        = "true"/>
39
 
40
			<!-- Update the deskpkg file with the version to be released. -->
41
			<echo message="${antshield.release}" file=".undo"/>
42
 
43
			<ant antfile     = "${ant.buildfile.filename}"
44
			     dir         = "${jants.build.view.path}"
45
				 inheritAll  = "false"
46
				 inheritRefs = "false"
47
				 target      = "@{release-target}">
48
				<property name="jants.build.version"   value="${antshield.release}"/>
49
				<property name="jants.build.label"     value="${jants.build.label}"/>
50
				<property name="jants.build.view.name" value="${jants.build.view.name}"/>
51
				<property name="jants.build.view.path" value="${jants.build.view.path}"/>
52
			</ant>
53
 
54
 
55
			<cclocklabel labelname="${jants.build.label}"/>
56
 
57
			<ccrmview viewname="${jants.build.view.name}"/>
58
 
59
			<delete file=".undo"/>
60
 
61
		</sequential>
62
 
63
	</macrodef>
64
 
65
 
66
 
67
	<macrodef name="ant-undo-release">
68
 
69
		<attribute name="package" default="${ant.project.name}"/>
70
 
71
		<sequential>
72
 
73
			<!-- Examine the manifest for the version that was released, and if it is set, set @{package} to that. -->
74
			<available property="undo.available" file=".undo"/>
75
			<fail unless="undo.available" message="Release cannot be undone."/>
76
			<loadfile srcFile=".undo" property="undo.version"/>
77
			<echo message="Undoing release ${undo.version}"/>
78
 
79
			<ccrmlabel labelname="@{package}_${undo.version}"/>
80
			<ccrmview viewname="${user.name}_jats_build_@{package}_${undo.version}"/>
81
 
82
		</sequential>
83
 
84
	</macrodef>
85
 
86
 
87
	<target name="release">
88
		<ant-release/>
89
	</target>
90
 
91
 
92
	<target name="undo-release">
93
	    <ant-undo-release/>
94
	</target>
95
 
96
</project>