30 |
30 |
31 <!-- This is where the release build logs are stored. |
31 <!-- This is where the release build logs are stored. |
32 @type string |
32 @type string |
33 @scope private |
33 @scope private |
34 --> |
34 --> |
35 <property name="release.log.dir" location="${build.log.dir}/release"/> |
35 <property name="release.log.dir" location="${build.log.dir}/release"/> |
36 |
|
37 |
|
38 <!--* @property release.grace.service |
|
39 The Grace service used |
|
40 @type string |
|
41 @editable required |
|
42 @scope public |
|
43 --> |
|
44 |
|
45 <!--* @property release.grace.product |
|
46 The Grace product used |
|
47 @type string |
|
48 @editable required |
|
49 @scope public |
|
50 --> |
|
51 |
|
52 <!--* @property release.grace.mail.to |
|
53 To whom the completion mail is sent to |
|
54 @type string |
|
55 @editable required |
|
56 @scope public |
|
57 --> |
|
58 |
|
59 <!--* @property release.grace.mail.subject |
|
60 The subject of the Grace upload completion mail |
|
61 @type string |
|
62 @editable required |
|
63 @scope public |
|
64 --> |
|
65 |
|
66 <!--* @property release.grace.mail.message |
|
67 The message contents of the Grace upload completion mail |
|
68 @type string |
|
69 @editable required |
|
70 @scope public |
|
71 --> |
|
72 |
36 |
73 <!--* @property robot.release.enabled |
37 <!--* @property robot.release.enabled |
74 Set to true to do build robot release after completing the build and if it successful. |
38 Set to true to do build robot release after completing the build and if it successful. |
75 @type boolean |
39 @type boolean |
76 @editable required |
40 @editable required |
92 @scope private |
56 @scope private |
93 --> |
57 --> |
94 |
58 |
95 <!-- Check, is robot release is enabled --> |
59 <!-- Check, is robot release is enabled --> |
96 <condition property="internal.robot.release.enabled"> |
60 <condition property="internal.robot.release.enabled"> |
97 <and> |
61 <or> |
98 <or> |
62 <istrue value="${robot.release.enabled}"/> |
99 <istrue value="${robot.release.enabled}"/> |
63 <isset property="do.robot.release"/> |
100 <isset property="do.robot.release"/> |
64 </or> |
101 </or> |
|
102 <isset property="s60.build.robot.path"/> |
|
103 </and> |
|
104 </condition> |
65 </condition> |
105 |
66 |
106 <fileset id="release.files" dir="${publish.dir}"> |
67 <fileset id="release.files" dir="${publish.dir}"> |
107 <include name="logs/**/*" /> |
68 <include name="logs/**/*" /> |
108 <include name="development_flash_images/**/*" /> |
69 <include name="development_flash_images/**/*" /> |
150 import ido |
111 import ido |
151 projects = [] |
112 projects = [] |
152 mconfigstr = project.getProperty('s60.build.robot.date') |
113 mconfigstr = project.getProperty('s60.build.robot.date') |
153 if mconfigstr != None: |
114 if mconfigstr != None: |
154 for configstr in mconfigstr.split(';'): |
115 for configstr in mconfigstr.split(';'): |
155 config = map(lambda x: x.strip(), configstr.split(',')) |
116 config = [x.strip() for x in configstr.split(',')] |
156 try: |
117 if len(config) < 4: |
157 if ido.is_in_interval(int(config[0]), config[1], int(config[2]), config[3]): |
118 raise Exception(configstr + ' is invalid config') |
158 self.log("It is release time!") |
119 if ido.is_in_interval(int(config[0]), config[1], int(config[2]), config[3]): |
159 projects.append(config[4]) |
120 self.log("It is release time!") |
160 project.setProperty('robot.release.project', ",".join(projects)) |
121 projects.append(config[4]) |
161 else: |
122 project.setProperty('robot.release.project', ",".join(projects)) |
162 self.log("It is not release time!") |
123 else: |
163 except Exception, e: |
124 self.log("It is not release time!") |
164 self.log("'%s' invalid configuration." % configstr) |
|
165 else: |
125 else: |
166 self.log("'s60.build.robot.date' is not defined.") |
126 self.log("'s60.build.robot.date' is not defined.") |
167 ]]> |
127 ]]> |
168 </script> |
128 </script> |
169 </target> |
129 </target> |
171 <!-- Sources are sent to the S60 build robot by all the IDOs. |
131 <!-- Sources are sent to the S60 build robot by all the IDOs. |
172 This target collects all the sources based on the System Definition file, |
132 This target collects all the sources based on the System Definition file, |
173 zip them all and send to the specified location. There is only one but mandatory |
133 zip them all and send to the specified location. There is only one but mandatory |
174 property to tell the location of the build server which is "s60.build.robot.path". |
134 property to tell the location of the build server which is "s60.build.robot.path". |
175 --> |
135 --> |
176 <target name="ido-sources-to-s60-build-robot" if="internal.robot.release.enabled" depends="ido-create-ado-mapping,check-robot-release,lookup-email"> |
136 <target name="ido-sources-to-s60-build-robot" if="internal.robot.release.enabled" depends="check-robot-release,lookup-email"> |
177 <if> |
137 <if> |
178 <isset property="robot.release.project"/> |
138 <isset property="robot.release.project"/> |
179 <then> |
139 <then> |
|
140 <property name="robot.mapping.file" location="${build.output.dir}/build/ado_mapping_robot.ini" /> |
|
141 <hlm:createAdoMappingMacro adoMapFile="${robot.mapping.file}" /> |
180 <!-- Location of the ready.txt FMPP template (override that property if you want to customize the content). |
142 <!-- Location of the ready.txt FMPP template (override that property if you want to customize the content). |
181 @type string |
143 @type string |
182 @scope private |
144 @scope private |
183 --> |
145 --> |
184 <property name="ido.template.robot.ready" location="${helium.dir}/tools/common/templates/ido/ready.txt.ftl" /> |
146 <property name="ido.template.robot.ready" location="${helium.dir}/tools/release/templates/ready.txt.ftl" /> |
185 <tempfile property="s60robot.dynamic.config" suffix=".xml" deleteonexit="false" destdir="${temp.build.dir}" /> |
147 <tempfile property="s60robot.dynamic.config" suffix=".xml" deleteonexit="false" destdir="${temp.build.dir}" /> |
186 <fmpp sourceFile="${helium.dir}/tools/common/templates/ido/ido-robot-zip.ant.xml.ftl" outputFile="${s60robot.dynamic.config}"> |
148 <fmpp sourceFile="${helium.dir}/tools/release/templates/ido-robot-zip.ant.xml.ftl" outputFile="${s60robot.dynamic.config}"> |
187 <data expandProperties="yes"> |
149 <data expandProperties="yes"> |
188 inputfile: antProperty(ado.mapping.file) |
150 inputfile: antProperty(robot.mapping.file) |
189 ant: antProperties() |
151 ant: antProperties() |
190 data: eval(' |
152 data: eval(' |
191 java.io.FileInputStream pin = new java.io.FileInputStream(filename); |
153 java.io.FileInputStream pin = new java.io.FileInputStream(filename); |
192 java.util.Properties props = new java.util.Properties(); |
154 java.util.Properties props = new java.util.Properties(); |
193 props.load(pin); |
155 props.load(pin); |