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

Side by Side Diff: releaseAutomation.py

Issue 29562614: Issue 5752 - Removing safari support (Closed)
Patch Set: Rebasing, removing additional files Created Oct. 4, 2017, 12:01 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
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 re 8 import re
9 import codecs 9 import codecs
10 import subprocess 10 import subprocess
11 import tarfile 11 import tarfile
12 import json 12 import json
13 13
14 from packager import readMetadata, getDefaultFileName 14 from packager import readMetadata, getDefaultFileName
15 15
tlucas 2017/10/04 12:04:11 Note: Result of rebasing
16 16
17 def get_dependencies(prefix, repos): 17 def get_dependencies(prefix, repos):
18 from ensure_dependencies import read_deps, safe_join 18 from ensure_dependencies import read_deps, safe_join
19 repo = repos[prefix] 19 repo = repos[prefix]
20 deps = read_deps(repo) 20 deps = read_deps(repo)
21 if deps: 21 if deps:
22 for subpath in deps: 22 for subpath in deps:
23 if subpath.startswith('_'): 23 if subpath.startswith('_'):
24 continue 24 continue
25 depprefix = prefix + subpath + '/' 25 depprefix = prefix + subpath + '/'
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 if repo_has_outgoing(): 111 if repo_has_outgoing():
112 return continue_with_outgoing() 112 return continue_with_outgoing()
113 return True 113 return True
114 114
115 115
116 def run(baseDir, type, version, keyFile, downloadsRepo): 116 def run(baseDir, type, version, keyFile, downloadsRepo):
117 if not can_safely_release(baseDir, downloadsRepo): 117 if not can_safely_release(baseDir, downloadsRepo):
118 print('Aborting release.') 118 print('Aborting release.')
119 return 1 119 return 1
120 120
121 if type == 'safari': 121 if type == 'edge':
122 import buildtools.packagerSafari as packager
123 elif type == 'edge':
124 import buildtools.packagerEdge as packager 122 import buildtools.packagerEdge as packager
125 elif type == 'chrome': 123 elif type == 'chrome':
126 import buildtools.packagerChrome as packager 124 import buildtools.packagerChrome as packager
127 125
128 # Replace version number in metadata file "manually", ConfigParser will mess 126 # Replace version number in metadata file "manually", ConfigParser will mess
129 # up the order of lines. 127 # up the order of lines.
130 metadata = readMetadata(baseDir, type) 128 metadata = readMetadata(baseDir, type)
131 with open(metadata.option_source('general', 'version'), 'r+b') as file: 129 with open(metadata.option_source('general', 'version'), 'r+b') as file:
132 rawMetadata = file.read() 130 rawMetadata = file.read()
133 rawMetadata = re.sub( 131 rawMetadata = re.sub(
(...skipping 10 matching lines...) Expand all
144 142
145 with open(os.path.join(locales_base, 'chrome', 'locale', 143 with open(os.path.join(locales_base, 'chrome', 'locale',
146 packager.defaultLocale.replace('_', '-'), 144 packager.defaultLocale.replace('_', '-'),
147 'meta.json'), 145 'meta.json'),
148 'r') as fp: 146 'r') as fp:
149 extensionName = json.load(fp)['name'] 147 extensionName = json.load(fp)['name']
150 148
151 # Now commit the change and tag it 149 # Now commit the change and tag it
152 subprocess.check_call(['hg', 'commit', '-R', baseDir, '-m', 'Releasing %s %s ' % (extensionName, version)]) 150 subprocess.check_call(['hg', 'commit', '-R', baseDir, '-m', 'Releasing %s %s ' % (extensionName, version)])
153 tag_name = version 151 tag_name = version
154 if type in {'safari', 'edge'}: 152 if type == 'edge':
155 tag_name = '{}-{}'.format(tag_name, type) 153 tag_name = '{}-{}'.format(tag_name, type)
156 subprocess.check_call(['hg', 'tag', '-R', baseDir, '-f', tag_name]) 154 subprocess.check_call(['hg', 'tag', '-R', baseDir, '-f', tag_name])
157 155
158 # Create a release build 156 # Create a release build
159 downloads = [] 157 downloads = []
160 if type == 'chrome': 158 if type == 'chrome':
161 # Create both signed and unsigned Chrome builds (the latter for Chrome W eb Store). 159 # Create both signed and unsigned Chrome builds (the latter for Chrome W eb Store).
162 buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver sion, 'crx')) 160 buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver sion, 'crx'))
163 packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild =True, keyFile=keyFile) 161 packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild =True, keyFile=keyFile)
164 downloads.append(buildPath) 162 downloads.append(buildPath)
165 163
166 buildPathUnsigned = os.path.join(baseDir, getDefaultFileName(metadata, v ersion, 'zip')) 164 buildPathUnsigned = os.path.join(baseDir, getDefaultFileName(metadata, v ersion, 'zip'))
167 packager.createBuild(baseDir, type=type, outFile=buildPathUnsigned, rele aseBuild=True, keyFile=None) 165 packager.createBuild(baseDir, type=type, outFile=buildPathUnsigned, rele aseBuild=True, keyFile=None)
168 elif type == 'safari':
169 buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver sion, 'safariextz'))
170 packager.createBuild(baseDir, type='safari', outFile=buildPath, releaseB uild=True, keyFile=keyFile)
171 downloads.append(buildPath)
172 elif type == 'edge': 166 elif type == 'edge':
173 # We only offer the Edge extension for use through the Windows Store 167 # We only offer the Edge extension for use through the Windows Store
174 buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver sion, 'appx')) 168 buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver sion, 'appx'))
175 packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild =True) 169 packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild =True)
176 downloads.append(buildPath) 170 downloads.append(buildPath)
177 171
178 # Create source archive 172 # Create source archive
179 archivePath = os.path.splitext(buildPath)[0] + '-source.tgz' 173 archivePath = os.path.splitext(buildPath)[0] + '-source.tgz'
180 create_sourcearchive(baseDir, archivePath) 174 create_sourcearchive(baseDir, archivePath)
181 downloads.append(archivePath) 175 downloads.append(archivePath)
182 176
183 # Now add the downloads and commit 177 # Now add the downloads and commit
184 subprocess.check_call(['hg', 'add', '-R', downloadsRepo] + downloads) 178 subprocess.check_call(['hg', 'add', '-R', downloadsRepo] + downloads)
185 subprocess.check_call(['hg', 'commit', '-R', downloadsRepo, '-m', 'Releasing %s %s' % (extensionName, version)]) 179 subprocess.check_call(['hg', 'commit', '-R', downloadsRepo, '-m', 'Releasing %s %s' % (extensionName, version)])
186 180
187 # Push all changes 181 # Push all changes
188 subprocess.check_call(['hg', 'push', '-R', baseDir]) 182 subprocess.check_call(['hg', 'push', '-R', baseDir])
189 subprocess.check_call(['hg', 'push', '-R', downloadsRepo]) 183 subprocess.check_call(['hg', 'push', '-R', downloadsRepo])
OLDNEW
« build.py ('K') | « packagerSafari.py ('k') | templates/Info.plist.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld