Bug 1376550 - Make OSX complete.mar's generated via ./mach repackage mozharness configs r=aki
Support OSX Signed nightlies (in the complete.mar too)
MozReview-Commit-ID: 6iPrPhjj34g
--- a/testing/mozharness/configs/repackage/osx_signed.py
+++ b/testing/mozharness/configs/repackage/osx_signed.py
@@ -1,22 +1,29 @@
import os
config = {
"input_home": "{abs_work_dir}/inputs",
+ "output_home": "{abs_work_dir}/artifacts",
"src_mozconfig": "browser/config/mozconfigs/macosx64/repack",
"download_config": {
"target.tar.gz": os.environ.get("SIGNED_INPUT"),
+ "mar": os.environ.get("UNSIGNED_MAR"),
},
"repackage_config": [[
"dmg",
"-i", "{abs_work_dir}/inputs/target.tar.gz",
"-o", "{output_home}/target.dmg"
+ ], [
+ "mar",
+ "-i", "{abs_work_dir}/inputs/target.tar.gz",
+ "--mar", "{abs_work_dir}/inputs/mar",
+ "-o", "{output_home}/target.complete.mar"
]],
# ToolTool
"tooltool_manifest_src": 'browser/config/tooltool-manifests/macosx64/cross-releng.manifest',
"tooltool_url": 'http://relengapi/tooltool/',
'tooltool_script': ["/builds/tooltool.py"],
'tooltool_cache': os.environ.get('TOOLTOOL_CACHE'),
}
--- a/testing/mozharness/scripts/repackage.py
+++ b/testing/mozharness/scripts/repackage.py
@@ -32,32 +32,37 @@ class Repackage(BaseScript):
for path, url in config["download_config"].items():
status = self.download_file(url=url,
file_name=path,
parent_dir=input_home)
if not status:
self.fatal("Unable to fetch signed input from %s" % url)
+ if 'mar' in path:
+ # Ensure mar is executable
+ self.chmod(os.path.join(input_home, path), 0755)
+
def setup(self):
self._run_tooltool()
self._get_mozconfig()
self._run_configure()
def query_abs_dirs(self):
if self.abs_dirs:
return self.abs_dirs
abs_dirs = super(Repackage, self).query_abs_dirs()
+ config = self.config
for directory in abs_dirs:
value = abs_dirs[directory]
abs_dirs[directory] = value
dirs = {}
dirs['abs_tools_dir'] = os.path.join(abs_dirs['abs_work_dir'], 'tools')
dirs['abs_mozilla_dir'] = os.path.join(abs_dirs['abs_work_dir'], 'src')
- dirs['output_home'] = os.path.join(abs_dirs['abs_work_dir'], 'artifacts')
+ dirs['output_home'] = config['output_home'].format(**abs_dirs)
for key in dirs.keys():
if key not in abs_dirs:
abs_dirs[key] = dirs[key]
self.abs_dirs = abs_dirs
return self.abs_dirs
def repackage(self):
config = self.config