Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
1972 jgill 1
<project name="ant-release-task">
2
 
3
	<macrodef name="ant-release">
4
 
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" 
10
					default="-do-release"
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."/>
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
 
32
			<if><equals arg1="@{version}" arg2=""/>
33
				<then>
34
					<fail message="Please specify the version to release."/>
35
				</then>
36
			</if>
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.                   -->
39
			<property name="jants.build.label"      value="@{package}_@{version}"/>
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}"
52
						version       = "@{version}"
53
						findCheckouts = "true"
54
						mkview        = "true"/>
55
 
56
			<!-- Update the deskpkg file with the version to be released. -->
57
			<echo message="@{package}_@{version}" file=".undo"/>
58
 
59
			<ant antfile     = "${ant.buildfile.filename}"
60
			     dir         = "${jants.build.view.path}"
61
				 inheritAll  = "false"
62
				 inheritRefs = "false"
63
				 target      = "@{release-target}">
64
				<property name="jants.build.version"   value="@{version}"/>
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}"/>
68
				<property name="jants.project.name"    value="${ant.project.name}"/>
69
			</ant>
70
 
71
			<!-- Release the files to dpkg_archive. -->
72
			<mkdir dir="${env.GBE_DPKG}/@{package}/@{version}"/>
73
 
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
 
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
 
103
			<ccrmlabel labelname="${undo.version}"/>
104
			<ccrmview viewname="${user.name}_jats_build_${undo.version}"/>
105
 
106
			<delete file=".undo"/>
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
 
121
	<target name="-do-release" depends="build, make_package"/>
122
</project>