Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: releaseAutomation.py

Issue 29756673: Noissue - Adapt best practices for trailing commas (buildtools) (Closed)
Patch Set: Created April 19, 2018, 12:58 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « packagerEdge.py ('k') | tests/test_packagerEdge.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # This Source Code Form is subject to the terms of the Mozilla Public 1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this 2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 4
5 from __future__ import print_function 5 from __future__ import print_function
6 6
7 import os 7 import os
8 import operator 8 import operator
9 import re 9 import re
10 import codecs 10 import codecs
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 178
179 def update_metadata(metadata, version): 179 def update_metadata(metadata, version):
180 """Replace version number in metadata file "manually". 180 """Replace version number in metadata file "manually".
181 181
182 The ConfigParser would mess up the order of lines. 182 The ConfigParser would mess up the order of lines.
183 """ 183 """
184 with open(metadata.option_source('general', 'version'), 'r+b') as fp: 184 with open(metadata.option_source('general', 'version'), 'r+b') as fp:
185 rawMetadata = fp.read() 185 rawMetadata = fp.read()
186 rawMetadata = re.sub( 186 rawMetadata = re.sub(
187 r'^(\s*version\s*=\s*).*', r'\g<1>%s' % version, 187 r'^(\s*version\s*=\s*).*', r'\g<1>%s' % version,
188 rawMetadata, flags=re.I | re.M 188 rawMetadata, flags=re.I | re.M,
189 ) 189 )
190 190
191 fp.seek(0) 191 fp.seek(0)
192 fp.write(rawMetadata) 192 fp.write(rawMetadata)
193 fp.truncate() 193 fp.truncate()
194 194
195 195
196 def create_build(platform, base_dir, target_path, version, key_file=None): 196 def create_build(platform, base_dir, target_path, version, key_file=None):
197 """Create a build for the target platform and version.""" 197 """Create a build for the target platform and version."""
198 if platform == 'edge': 198 if platform == 'edge':
199 import buildtools.packagerEdge as packager 199 import buildtools.packagerEdge as packager
200 else: 200 else:
201 import buildtools.packagerChrome as packager 201 import buildtools.packagerChrome as packager
202 202
203 metadata = readMetadata(base_dir, platform) 203 metadata = readMetadata(base_dir, platform)
204 update_metadata(metadata, version) 204 update_metadata(metadata, version)
205 205
206 build_path = os.path.join( 206 build_path = os.path.join(
207 target_path, 207 target_path,
208 getDefaultFileName(metadata, version, 208 getDefaultFileName(metadata, version,
209 get_extension(platform, key_file is not None)) 209 get_extension(platform, key_file is not None)),
210 ) 210 )
211 211
212 packager.createBuild(base_dir, type=platform, outFile=build_path, 212 packager.createBuild(base_dir, type=platform, outFile=build_path,
213 releaseBuild=True, keyFile=key_file) 213 releaseBuild=True, keyFile=key_file)
214 214
215 return build_path 215 return build_path
216 216
217 217
218 def release_commit(base_dir, extension_name, version, platforms): 218 def release_commit(base_dir, extension_name, version, platforms):
219 """Create a release commit with a representative message.""" 219 """Create a release commit with a representative message."""
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 used_key_file = None 263 used_key_file = None
264 if platform == 'chrome': 264 if platform == 'chrome':
265 # Currently, only chrome builds are provided by us as signed 265 # Currently, only chrome builds are provided by us as signed
266 # packages. Create an unsigned package in base_dir which should be 266 # packages. Create an unsigned package in base_dir which should be
267 # uploaded to the Chrome Web Store 267 # uploaded to the Chrome Web Store
268 create_build(platform, baseDir, baseDir, version) 268 create_build(platform, baseDir, baseDir, version)
269 used_key_file = keyFile 269 used_key_file = keyFile
270 270
271 downloads.append( 271 downloads.append(
272 create_build(platform, baseDir, downloads_repo, version, 272 create_build(platform, baseDir, downloads_repo, version,
273 used_key_file) 273 used_key_file),
274 ) 274 )
275 275
276 # Only create one commit, one tag and one source archive for all 276 # Only create one commit, one tag and one source archive for all
277 # platforms 277 # platforms
278 archive_path = os.path.join( 278 archive_path = os.path.join(
279 downloads_repo, 279 downloads_repo,
280 'adblockplus-{}-source.tgz'.format(release_identifier), 280 'adblockplus-{}-source.tgz'.format(release_identifier),
281 ) 281 )
282 create_sourcearchive(baseDir, archive_path) 282 create_sourcearchive(baseDir, archive_path)
283 downloads.append(archive_path) 283 downloads.append(archive_path)
284 try: 284 try:
285 release_commit(baseDir, extension_name, version, target_platforms) 285 release_commit(baseDir, extension_name, version, target_platforms)
286 except subprocess.CalledProcessError as e: 286 except subprocess.CalledProcessError as e:
287 if not (re_release and 'nothing changed' in e.output): 287 if not (re_release and 'nothing changed' in e.output):
288 raise 288 raise
289 289
290 release_tag(baseDir, release_identifier, extension_name) 290 release_tag(baseDir, release_identifier, extension_name)
291 291
292 # Now add the downloads and commit 292 # Now add the downloads and commit
293 subprocess.check_call(['hg', 'add', '-R', downloads_repo] + downloads) 293 subprocess.check_call(['hg', 'add', '-R', downloads_repo] + downloads)
294 release_commit(downloads_repo, extension_name, version, target_platforms) 294 release_commit(downloads_repo, extension_name, version, target_platforms)
295 295
296 # Push all changes 296 # Push all changes
297 subprocess.check_call(['hg', 'push', '-R', baseDir]) 297 subprocess.check_call(['hg', 'push', '-R', baseDir])
298 subprocess.check_call(['hg', 'push', '-R', downloads_repo]) 298 subprocess.check_call(['hg', 'push', '-R', downloads_repo])
OLDNEW
« no previous file with comments | « packagerEdge.py ('k') | tests/test_packagerEdge.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld