mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 08:45:46 +00:00
Bug 1252003 - Add publish to balrog builder r=rail DONTBUILD
This commit is contained in:
parent
1838c2a407
commit
f7316b6c57
@ -31,6 +31,7 @@ config = {
|
||||
"mar_channel_ids": [],
|
||||
"channel_names": ["beta-dev", "beta-dev-localtest", "beta-dev-cdntest"],
|
||||
"rules_to_update": ["firefox-beta-dev-cdntest", "firefox-beta-dev-localtest"],
|
||||
"publish_rules": ["firefox-beta"],
|
||||
}
|
||||
},
|
||||
"balrog_use_dummy_suffix": False,
|
||||
|
@ -32,6 +32,7 @@ config = {
|
||||
],
|
||||
"channel_names": ["beta-dev", "beta-dev-localtest", "beta-dev-cdntest"],
|
||||
"rules_to_update": ["firefox-beta-dev-cdntest", "firefox-beta-dev-localtest"],
|
||||
"publish_rules": ["firefox-beta"],
|
||||
},
|
||||
"release-dev": {
|
||||
"version_regex": r"^\d+\.\d+(\.\d+)?$",
|
||||
@ -41,6 +42,7 @@ config = {
|
||||
"mar_channel_ids": [],
|
||||
"channel_names": ["release-dev", "release-dev-localtest", "release-dev-cdntest"],
|
||||
"rules_to_update": ["firefox-release-dev-cdntest", "firefox-release-dev-localtest"],
|
||||
"publish_rules": ["firefox-release"],
|
||||
},
|
||||
},
|
||||
"balrog_use_dummy_suffix": False,
|
||||
|
@ -27,6 +27,7 @@ config = {
|
||||
"mar_channel_ids": [],
|
||||
"channel_names": ["beta", "beta-localtest", "beta-cdntest"],
|
||||
"rules_to_update": ["firefox-beta-cdntest", "firefox-beta-localtest"],
|
||||
"publish_rules": ["firefox-beta"],
|
||||
},
|
||||
},
|
||||
"balrog_use_dummy_suffix": False,
|
||||
|
@ -29,6 +29,7 @@ config = {
|
||||
],
|
||||
"channel_names": ["beta", "beta-localtest", "beta-cdntest"],
|
||||
"rules_to_update": ["firefox-beta-cdntest", "firefox-beta-localtest"],
|
||||
"publish_rules": ["firefox-beta"],
|
||||
},
|
||||
"release": {
|
||||
"version_regex": r"^\d+\.\d+(\.\d+)?$",
|
||||
@ -38,6 +39,7 @@ config = {
|
||||
"mar_channel_ids": [],
|
||||
"channel_names": ["release", "release-localtest", "release-cdntest"],
|
||||
"rules_to_update": ["firefox-release-cdntest", "firefox-release-localtest"],
|
||||
"publish_rules": ["firefox-release"],
|
||||
},
|
||||
},
|
||||
"balrog_use_dummy_suffix": False,
|
||||
|
115
testing/mozharness/scripts/release/publish_balrog.py
Normal file
115
testing/mozharness/scripts/release/publish_balrog.py
Normal file
@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env python
|
||||
# lint_ignore=E501
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
# ***** END LICENSE BLOCK *****
|
||||
""" updates.py
|
||||
|
||||
A script publish a release to Balrog.
|
||||
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(1, os.path.dirname(os.path.dirname(sys.path[0])))
|
||||
from mozharness.base.vcs.vcsbase import MercurialScript
|
||||
from mozharness.mozilla.buildbot import BuildbotMixin
|
||||
|
||||
# PublishBalrog {{{1
|
||||
|
||||
|
||||
class PublishBalrog(MercurialScript, BuildbotMixin):
|
||||
|
||||
def __init__(self, require_config_file=True):
|
||||
super(PublishBalrog, self).__init__(
|
||||
all_actions=[
|
||||
'clobber',
|
||||
'pull',
|
||||
'submit-to-balrog',
|
||||
],
|
||||
default_actions=[
|
||||
'clobber',
|
||||
'pull',
|
||||
'submit-to-balrog',
|
||||
],
|
||||
config={
|
||||
'buildbot_json_path': 'buildprops.json',
|
||||
'credentials_file': 'oauth.txt',
|
||||
},
|
||||
require_config_file=require_config_file
|
||||
)
|
||||
|
||||
def _pre_config_lock(self, rw_config):
|
||||
super(PublishBalrog, self)._pre_config_lock(rw_config)
|
||||
# override properties from buildbot properties here as defined by
|
||||
# taskcluster properties
|
||||
self.read_buildbot_config()
|
||||
if not self.buildbot_config:
|
||||
self.warning("Skipping buildbot properties overrides")
|
||||
return
|
||||
# TODO: version and appVersion should come from repo
|
||||
props = self.buildbot_config["properties"]
|
||||
for prop in ['product', 'version', 'build_number', 'channels',
|
||||
'balrog_api_root']:
|
||||
if props.get(prop):
|
||||
self.info("Overriding %s with %s" % (prop, props[prop]))
|
||||
self.config[prop] = props.get(prop)
|
||||
|
||||
def query_abs_dirs(self):
|
||||
if self.abs_dirs:
|
||||
return self.abs_dirs
|
||||
self.abs_dirs = super(PublishBalrog, self).query_abs_dirs()
|
||||
self.abs_dirs["abs_tools_dir"] = os.path.join(
|
||||
self.abs_dirs['abs_work_dir'], self.config["repo"]["dest"])
|
||||
return self.abs_dirs
|
||||
|
||||
def query_channel_configs(self):
|
||||
"""Return a list of channel configs.
|
||||
For RC builds it returns "release" and "beta" using
|
||||
"enabled_if_version_matches" to match RC.
|
||||
|
||||
:return: list
|
||||
"""
|
||||
return [(n, c) for n, c in self.config["update_channels"].items() if
|
||||
n in self.config["channels"]]
|
||||
|
||||
def query_repos(self):
|
||||
"""Build a list of repos to clone."""
|
||||
return [self.config["repo"]]
|
||||
|
||||
def pull(self):
|
||||
super(PublishBalrog, self).pull(
|
||||
repos=self.query_repos())
|
||||
|
||||
|
||||
def submit_to_balrog(self):
|
||||
for _, channel_config in self.query_channel_configs():
|
||||
self._submit_to_balrog(channel_config)
|
||||
|
||||
def _submit_to_balrog(self, channel_config):
|
||||
dirs = self.query_abs_dirs()
|
||||
auth = os.path.join(os.getcwd(), self.config['credentials_file'])
|
||||
cmd = [
|
||||
self.query_exe("python"),
|
||||
os.path.join(dirs["abs_tools_dir"],
|
||||
"scripts/build-promotion/balrog-release-shipper.py")]
|
||||
cmd.extend([
|
||||
"--api-root", self.config["balrog_api_root"],
|
||||
"--credentials-file", auth,
|
||||
"--username", self.config["balrog_username"],
|
||||
"--version", self.config["version"],
|
||||
"--product", self.config["product"],
|
||||
"--build-number", str(self.config["build_number"]),
|
||||
"--verbose",
|
||||
])
|
||||
for r in channel_config["publish_rules"]:
|
||||
cmd.extend(["--rules", r])
|
||||
|
||||
self.retry(lambda: self.run_command(cmd, halt_on_failure=True))
|
||||
|
||||
# __main__ {{{1
|
||||
if __name__ == '__main__':
|
||||
PublishBalrog().run_and_exit()
|
Loading…
Reference in New Issue
Block a user