-
Notifications
You must be signed in to change notification settings - Fork 30
/
build-continuous.xml
116 lines (92 loc) · 5.15 KB
/
build-continuous.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?xml version="1.0"?>
<!--
=======================================================================
Build file containing targets for continuously integrating build
Targets are put in a separate build file to prevent users from
having to put in an SSH library in ANT_HOME/lib
This build requires an SSH client to be put in ANT_HOME/lib. Refer
to Ant's SCP documentation for more information.
@author Alef Arendsen
=======================================================================
-->
<project name="build-spring-continuous" default="snapshot">
<import file="${basedir}/build.xml"/>
<!-- targets for uploading binaries, creating snapshots, et cetera -->
<!--
properties needed (some are set in CruiseControl configuration)
- target.release.dir release directory (set by build.xml)
- upload.tmp.dir temporary directory to use when uploading
- label build label (usually passed by CC)
- upload.username username to use when SCP'ing to server
- upload.password password to use when SCP'ing to server
- upload.url url to use when SCP'ing to server
- upload.log.dir directory to upload logs to
- upload.binaries.dir directory to upload binaries to
-->
<target name="snapshot" depends="guard.upload.tmp.dir">
<delete quiet="true" dir="${upload.tmp.dir}"/>
<mkdir dir="${upload.tmp.dir}"/>
<tstamp>
<format property="tstamp" pattern="yyyyMMdd"/>
</tstamp>
<move file="${target.release.dir}/${release-with-dependencies.zip}"
tofile="${upload.tmp.dir}/spring-framework-${spring-version}-with-dependencies-${label}-${tstamp}.zip"/>
<move file="${target.release.dir}/${release.zip}"
tofile="${upload.tmp.dir}/spring-framework-${spring-version}-${label}-${tstamp}.zip"/>
</target>
<target name="upload" depends="upload-log, upload-binaries"/>
<!-- SCP needs an SSH library on the classpath (see Ant documentation for more info) -->
<target name="upload-log" depends="guard.upload.tmp.dir, guard.upload.log.dir, guard.upload.username, guard.upload.password, guard.upload.url">
<scp todir="${upload.username}@${upload.url}:${upload.log.dir}" password="${upload.password}">
<fileset dir="${upload.tmp.dir}">
<include name="*.html"/>
</fileset>
</scp>
</target>
<target name="upload-binaries" depends="guard.upload.tmp.dir, guard.upload.binaries.dir, guard.upload.url, guard.upload.password, guard.upload.username">
<scp todir="${upload.username}@${upload.url}:${upload.binaries.dir}" password="${upload.password}">
<fileset dir="${upload.tmp.dir}">
<include name="spring-*.zip"/>
</fileset>
</scp>
<delete quiet="true" dir="${upload.tmp.dir}"/>
</target>
<target name="email" depends="email-success, email-failure"/>
<target name="email-failure" depends="guard.smtp.host">
<mail mailhost="${smtp.host}" subject="Spring ${label} FAILED" tolist="springframework-developer@lists.sourceforge.net" from="build@interface21.com">
<message>Errors and a list of modifications can be found in the build log (http://static.springframework.org/spring/build/index.html).</message>
</mail>
</target>
<target name="email-success" depends="guard.smtp.host">
<mail mailhost="${smtp.host}" subject="Spring ${label} SUCCEEDED" tolist="springframework-developer@lists.sourceforge.net" from="build@interface21.com">
<message>Snapshot has been uploaded to http://www.springframework.org/snaphots
The list of modifications for this build can be found in the build log (http://static.springframework.org/spring/build/index.html).
</message>
</mail>
</target>
<target name="guard.smtp.host" unless="smtp.host">
<fail message="This target requires the smtp.host property to be set"/>
</target>
<target name="guard.upload.tmp.dir" unless="upload.tmp.dir">
<fail message="This target requires the upload.tmp.dir property to be set"/>
</target>
<target name="guard.upload.log.dir" unless="upload.log.dir">
<fail message="This target requires the upload.log.dir property to be set"/>
</target>
<target name="guard.upload.binaries.dir" unless="upload.binaries.dir">
<fail message="This target requires the upload.binaries.dir property to be set"/>
</target>
<target name="guard.upload.username" unless="upload.username">
<fail message="This target requires the upload.username property to be set"/>
</target>
<target name="guard.upload.url" unless="upload.url">
<fail message="This target requires the upload.url.property to be set"/>
</target>
<target name="guard.upload.password" unless="upload.password">
<fail message="This target requires the upload.password property to be set"/>
</target>
<target name="cvs-update">
<cvs command="update -d" dest="${basedir}"/>
</target>
<target name="automated-build" depends="clean,testsummary,release, snapshot"/>
</project>