Bug 1102907 - Script for allowing web-platform-tests changes to be upstreamed, r=ahal
This extends the upstream update script with steps for pushing local changes to upstream. The general approach is to look for all commits to the tests directory since the last sync, rewrite those so they apply to upstream at the last sync point, then rebase onto the sync commit, before creating and merging a PR for each in turn.
This commit is contained in:
36
testing/web-platform/update/updatecommandline.py
Normal file
36
testing/web-platform/update/updatecommandline.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# 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/.
|
||||
|
||||
def create_parser():
|
||||
from wptrunner import wptcommandline
|
||||
|
||||
parser = wptcommandline.create_parser_update()
|
||||
parser.add_argument("--upstream", action="store_true",
|
||||
help="Push local changes to upstream repository")
|
||||
parser.add_argument("--token-file", action="store", type=wptcommandline.abs_path,
|
||||
help="Path to file containing github token")
|
||||
parser.add_argument("--token", action="store", help="GitHub token to use")
|
||||
return parser
|
||||
|
||||
|
||||
def check_args(kwargs):
|
||||
from wptrunner import wptcommandline
|
||||
|
||||
wptcommandline.set_from_config(kwargs)
|
||||
if kwargs["upstream"]:
|
||||
if kwargs["rev"]:
|
||||
raise ValueError("Setting --rev with --upstream isn't supported")
|
||||
if kwargs["token"] is None:
|
||||
if kwargs["token_file"] is None:
|
||||
raise ValueError("Must supply either a token file or a token")
|
||||
with open(kwargs["token_file"]) as f:
|
||||
token = f.read().strip()
|
||||
kwargs["token"] = token
|
||||
del kwargs["token_file"]
|
||||
return kwargs
|
||||
|
||||
def parse_args():
|
||||
parser = create_parser()
|
||||
kwargs = vars(parser.parse_args())
|
||||
return check_args(kwargs)
|
||||
Reference in New Issue
Block a user