diff options
Diffstat (limited to 'testing/web-platform/update/update.py')
-rw-r--r-- | testing/web-platform/update/update.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/testing/web-platform/update/update.py b/testing/web-platform/update/update.py new file mode 100644 index 0000000000..68d3293fb7 --- /dev/null +++ b/testing/web-platform/update/update.py @@ -0,0 +1,51 @@ +# 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/. + +import os + +from wptrunner.update.base import Step, StepRunner +from wptrunner.update.tree import NoVCSTree +from wptrunner.update.update import ( + LoadConfig, + RemoveObsolete, + SyncFromUpstream, + UpdateMetadata, +) + +from .tree import GeckoCommit, GitTree, HgTree +from .upstream import SyncToUpstream + + +class LoadTrees(Step): + """Load gecko tree and sync tree containing web-platform-tests""" + + provides = ["local_tree", "sync_tree"] + + def create(self, state): + if os.path.exists(state.sync["path"]): + sync_tree = GitTree(root=state.sync["path"]) + else: + sync_tree = None + + if GitTree.is_type(): + local_tree = GitTree(commit_cls=GeckoCommit) + elif HgTree.is_type(): + local_tree = HgTree(commit_cls=GeckoCommit) + else: + local_tree = NoVCSTree() + + state.update({"local_tree": local_tree, "sync_tree": sync_tree}) + + +class UpdateRunner(StepRunner): + """Overall runner for updating web-platform-tests in Gecko.""" + + steps = [ + LoadConfig, + LoadTrees, + SyncToUpstream, + SyncFromUpstream, + RemoveObsolete, + UpdateMetadata, + ] |