Subversion Repositories DevTools

Rev

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