Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1615 mhunt 1
<?xml version="1.0"?>
2
 
3
<project name="project-name" default="compile" basedir="." >
4
 
5
	<description>Build and release script for the Driver Accounting package</description>
6
 
7
	<taskdef resource="jats.properties"/>
8
 
9
	<!-- =================================================================== -->
10
	<!--  GLOBAL PROPERTIES                                                  -->
11
	<!-- =================================================================== -->
12
	<property file="${user.home}/.ant.properties" />
13
 
14
 
15
	<!-- =================================================================== -->
16
	<!--  PUBLIC TARGETS                                                     -->
17
	<!-- =================================================================== -->
18
 
19
	<!-- =================================================================== -->
20
	<target name="sandbox"
21
		description="Prepare the project dependency 'sandbox'.">
22
		<echo message="Prepare the sandbox."/>
23
		<!-- [insert tasks here to prepare the implementation sandbox] -->
24
		<!-- eg:                                                       -->
25
		<!-- <jats>                                                    -->
26
		<!--   <sandbox name="dependency" version="1.2.3.mas"/>        -->
27
		<!--   <sandbox name="package-name-api" version="1.0.0.mas"/>  -->
28
		<!-- </jats>                                                   -->
29
	</target>
30
 
31
	<!-- =================================================================== -->
32
	<target name="compile" depends="sandbox"
33
		description="Compile the project source.">
34
		<echo message="Compile the project source."/>
35
		<!-- [insert tasks here to perform source compilation]         -->
36
	</target>
37
 
38
	<!-- =================================================================== -->
39
	<target name="package" depends="compile"
40
		description="Package the project into releasable entities.">
41
		<echo message="Package the project release entities."/>
42
		<!-- [insert tasks here to package implementation] -->
43
	</target>
44
 
45
	<!-- =================================================================== -->
46
	<target name="test" depends=""
47
		description="Test the package using JUnit tests.">
48
		<echo message="Test the package."/>
49
		<!-- [insert tasks here to test implementation] -->
50
	</target>
51
 
52
	<!-- =================================================================== -->
53
	<target name="release-patch"
54
		description="Formally release this package as a patch release.">
55
		<property name="jants.release.category" value="patch"/>
56
		<antcall target="-label"/>
57
	</target>
58
 
59
	<!-- =================================================================== -->
60
	<target name="release-minor"
61
		description="Formally release this package as a minor release.">
62
		<property name="jants.release.category" value="minor"/>
63
		<antcall target="-label"/>
64
	</target>
65
 
66
	<!-- =================================================================== -->
67
	<target name="release-major"
68
		description="Formally release this package as a major release.">
69
		<property name="jants.release.category" value="major"/>
70
		<antcall target="-label"/>
71
	</target>
72
 
73
	<!-- =================================================================== -->
74
	<target name="release-prompt"
75
		description="Formally release this package as a user-specified version.">
76
		<property name="jants.release.category" value="prompt"/>
77
		<antcall target="-label"/>
78
	</target>
79
 
80
	<!-- =================================================================== -->
81
	<target name="undo"
82
		description="Remove artifacts from a partially complete build.">
83
		<input message="Which version do you wish to undo?" addproperty="jants.build.version"/>
84
		<!-- Remove any label for the given version -->
85
		<ccrmlabel labelname="${ant.project.name}-${jants.build.version}"/>
86
		<!-- Remove any network drive mapping, and remove any view corresponding to the label -->
87
		<ccrmview viewname="${user.name}_jats_build_${ant.project.name}-${jants.build.version}" unmap="${jants.map.drive}"/>
88
	</target>
89
 
90
	<!-- =================================================================== -->
91
	<!--  SILENT TARGETS                                                     -->
92
	<!-- =================================================================== -->
93
 
94
	<!-- =================================================================== -->
95
	<target name="-label">
96
		<jats package="${ant.project.name}" scope="mas">
97
			<cclabel findCheckouts = "true"
98
					 type          = "${jants.release.category}"
99
					 mkview        = "true"
100
					 mapview       = "${jants.map.drive}"
101
					 labelname     = "jants.build.label"
102
					 viewname      = "jants.build.view.name"
103
					 viewpath      = "jants.build.view.path"
104
					 version       = "jants.build.version"/>
105
		</jats>
106
		<ant dir="${jants.build.view.path}" inheritAll="false" inheritRefs="false" target="-dpkg-release-${jants.release.category}">
107
			<property name="jants.build.version" value="${jants.build.version}"/>
108
		</ant>
109
		<ccrmview viewname="${jants.build.view.name}" unmap="${jants.map.drive}"/>
110
		<cclocklabel labelname="${jants.build.label}"/>
111
	</target>
112
 
113
	<!-- =================================================================== -->
114
	<target name="-dpkg-release-patch">
115
		<property name="jants.release.category" value="patch"/>
116
		<antcall target="-release"/>
117
	</target>
118
 
119
	<!-- =================================================================== -->
120
	<target name="-dpkg-release-minor">
121
		<property name="jants.release.category" value="minor"/>
122
		<antcall target="-release"/>
123
	</target>
124
 
125
	<!-- =================================================================== -->
126
	<target name="-dpkg-release-major">
127
		<property name="jants.release.category" value="major"/>
128
		<antcall target="-release"/>
129
	</target>
130
 
131
	<!-- =================================================================== -->
132
	<target name="-dpkg-release-prompt">
133
		<property name="jants.release.category" value="force"/>
134
		<antcall target="-release"/>
135
	</target>
136
 
137
	<!-- =================================================================== -->
138
	<target name="-release" depends="package,test">
139
		<!-- Clean the package directory -->
140
		<delete dir="pkg"/>
141
		<mkdir dir="pkg"/>
142
 
143
		<!-- Prepare the package entities -->
144
		<!-- [insert tasks here to copy relevant non-API files to their -->
145
		<!--  correct location within pkg]                              -->
146
 
147
		<!-- And perform the dpkg release -->
148
 
149
		<jats package="${ant.project.name}" scope="mas">
150
			<release type="${jants.release.category}" version="${jants.build.version}"/>
151
		</jats>
152
	</target>
153
 
154
</project>