update.py (1384B)
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 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 5 import os 6 7 from wptrunner.update.base import Step, StepRunner 8 from wptrunner.update.tree import NoVCSTree 9 from wptrunner.update.update import ( 10 LoadConfig, 11 RemoveObsolete, 12 SyncFromUpstream, 13 UpdateMetadata, 14 ) 15 16 from .tree import GeckoCommit, GitTree, HgTree 17 from .upstream import SyncToUpstream 18 19 20 class LoadTrees(Step): 21 """Load gecko tree and sync tree containing web-platform-tests""" 22 23 provides = ["local_tree", "sync_tree"] 24 25 def create(self, state): 26 if os.path.exists(state.sync["path"]): 27 sync_tree = GitTree(root=state.sync["path"]) 28 else: 29 sync_tree = None 30 31 if GitTree.is_type(): 32 local_tree = GitTree(commit_cls=GeckoCommit) 33 elif HgTree.is_type(): 34 local_tree = HgTree(commit_cls=GeckoCommit) 35 else: 36 local_tree = NoVCSTree() 37 38 state.update({"local_tree": local_tree, "sync_tree": sync_tree}) 39 40 41 class UpdateRunner(StepRunner): 42 """Overall runner for updating web-platform-tests in Gecko.""" 43 44 steps = [ 45 LoadConfig, 46 LoadTrees, 47 SyncToUpstream, 48 SyncFromUpstream, 49 RemoveObsolete, 50 UpdateMetadata, 51 ]