Subversion Repositories DevTools

Rev

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