New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(DO NOT MERGE) Refactor builds to allow non-Servo builds on buildbot. #721
Changes from all commits
File filter...
Jump to…
| @@ -58,6 +58,11 @@ def servo_master_filter(c): | ||
| c.who.startswith('bors-servo') and | ||
| c.branch == "master") | ||
|
|
||
| def repo_auto_try_filter(c): | ||
| return (c.project != 'servo/servo' and | ||
| c.who.startswith('bors-servo') and | ||
| c.branch in ["auto", "try"]) | ||
|
|
||
|
|
||
| c['schedulers'] = [] | ||
| c['schedulers'].append(schedulers.AnyBranchScheduler( | ||
| @@ -82,6 +87,15 @@ c['schedulers'].append(schedulers.AnyBranchScheduler( | ||
| ], | ||
| change_filter=util.ChangeFilter(filter_fn=servo_auto_try_filter), | ||
| )) | ||
| c['schedulers'].append(schedulers.AnyBranchScheduler( | ||
| name="repo-auto", | ||
| treeStableTimer=None, | ||
| builderNames=[ | ||
| "linux-repo", | ||
| "mac-repo", | ||
| ], | ||
| change_filter=util.ChangeFilter(filter_fn=repo_auto_try_filter), | ||
| )) | ||
| c['schedulers'].append(schedulers.SingleBranchScheduler( | ||
| name="doc-push", | ||
| treeStableTimer=None, | ||
| @@ -145,49 +159,57 @@ def branch_priority(builder, requests): | ||
| return requests[0] | ||
|
|
||
|
|
||
| class DynamicServoBuilder(util.BuilderConfig): | ||
| class DynamicRepoBuilder(util.BuilderConfig): | ||
| """\ | ||
| Builder which uses DynamicServoFactory to run steps | ||
| from a YAML file in the main servo repo. | ||
| Builder which uses DynamicGitUrlFactory to run steps | ||
| from a YAML file in the repo. | ||
|
||
| """ | ||
| def __init__(self, name, slavenames, environment): | ||
| def __init__(self, repo_owner, repo_name, name, slavenames, environment): | ||
| # util.BuilderConfig is an old-style class so we cannot use super() | ||
| # but must hardcode the superclass here | ||
| util.BuilderConfig.__init__( | ||
| self, | ||
| name=name, | ||
| slavenames=slavenames, | ||
| factory=factories.DynamicServoFactory(name, environment), | ||
| factory=factories.DynamicGitUrlFactory("https://github.com/%s/%s" % (repo_owner, repo_name), | ||
|
||
| name, environment, | ||
| "etc/ci/buildbot_steps.yml"), | ||
aneeshusa
Member
|
||
| nextBuild=branch_priority, | ||
| canStartBuild=util.enforceChosenSlave, | ||
| properties={ | ||
| "repo_owner": repo_owner, | ||
| "repo_name": repo_name, | ||
| }, | ||
| ) | ||
|
|
||
|
|
||
| c['builders'] = [ | ||
| DynamicServoBuilder("android", CROSS_SLAVES, envs.build_android), | ||
| DynamicServoBuilder("android-nightly", CROSS_SLAVES, envs.build_android), | ||
| DynamicServoBuilder("arm32", CROSS_SLAVES, envs.build_arm32), | ||
| DynamicServoBuilder("arm64", CROSS_SLAVES, envs.build_arm64), | ||
| DynamicServoBuilder("linux-dev", LINUX_SLAVES, envs.build_linux), | ||
| DynamicServoBuilder("linux-nightly", LINUX_SLAVES, envs.build_linux), | ||
| DynamicServoBuilder("linux-rel-css", LINUX_SLAVES, envs.build_linux), | ||
| DynamicServoBuilder("linux-rel-intermittent", LINUX_SLAVES, | ||
| envs.build_linux), | ||
| DynamicServoBuilder("linux-rel-nogate", LINUX_SLAVES, envs.build_linux), | ||
| DynamicServoBuilder("linux-rel-wpt", LINUX_SLAVES, envs.build_linux), | ||
| DynamicServoBuilder("mac-dev-unit", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-nightly", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-css1", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-css2", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-intermittent", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-wpt1", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-wpt2", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-wpt3", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("mac-rel-wpt4", MAC_SLAVES, envs.build_mac), | ||
| DynamicServoBuilder("windows-msvc-dev", WINDOWS_SLAVES, | ||
| envs.build_windows_msvc), | ||
| DynamicServoBuilder("windows-msvc-nightly", WINDOWS_SLAVES, | ||
| envs.build_windows_msvc), | ||
| DynamicRepoBuilder("servo", "servo", "android", CROSS_SLAVES, envs.build_android), | ||
aneeshusa
Member
|
||
| DynamicRepoBuilder("servo", "servo", "android-nightly", CROSS_SLAVES, envs.build_android), | ||
| DynamicRepoBuilder("servo", "servo", "arm32", CROSS_SLAVES, envs.build_arm32), | ||
| DynamicRepoBuilder("servo", "servo", "arm64", CROSS_SLAVES, envs.build_arm64), | ||
| DynamicRepoBuilder("servo", "servo", "linux-dev", LINUX_SLAVES, envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "linux-nightly", LINUX_SLAVES, envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "linux-rel-css", LINUX_SLAVES, envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "linux-rel-intermittent", LINUX_SLAVES, | ||
| envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "linux-rel-nogate", LINUX_SLAVES, envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "linux-rel-wpt", LINUX_SLAVES, envs.build_linux), | ||
| DynamicRepoBuilder("servo", "servo", "mac-dev-unit", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-nightly", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-css1", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-css2", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-intermittent", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-wpt1", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-wpt2", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-wpt3", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "mac-rel-wpt4", MAC_SLAVES, envs.build_mac), | ||
| DynamicRepoBuilder("servo", "servo", "windows-msvc-dev", WINDOWS_SLAVES, | ||
| envs.build_windows_msvc), | ||
| DynamicRepoBuilder("servo", "servo", "windows-msvc-nightly", WINDOWS_SLAVES, | ||
| envs.build_windows_msvc), | ||
| DyanmicRepoBuilder("servo", "webrender", "linux-repo", LINUX_SLAVES, envs.build_linux), | ||
aneeshusa
Member
|
||
| DynamicRepoBuilder("servo", "webrender", "mac-repo", MAC_SLAVES, envs.build_mac), | ||
| # The below builders are not dynamic but rather have hard-coded factories | ||
| util.BuilderConfig( | ||
| name="doc", | ||
| @@ -223,8 +245,8 @@ c['status'] = [ | ||
| ), | ||
| status.GitHubStatus( | ||
| token=GITHUB_STATUS_TOKEN, | ||
| repoOwner='servo', | ||
| repoName='servo', | ||
| repoOwner=util.Interpolate("%(prop:repo_owner)s"), | ||
| repoName=util.Interpolate("%(prop:repo_name)s"), | ||
| startDescription="Build started.", | ||
| endDescription="Build done.", | ||
| ), | ||
the YAML steps->a YAML stepsI'd also keep the second part of the sentence (
and dynamically...) on the next line.