From a98e73504fa58eeb25ad90adba3a4181b423d3b4 Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Thu, 30 Jun 2016 07:19:18 -0400 Subject: [PATCH 1/3] Alphabetize the other builder names lists The last thing to alphabetize is the steps.yml file. --- buildbot/master/files/config/master.cfg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/buildbot/master/files/config/master.cfg b/buildbot/master/files/config/master.cfg index 812179f4..426f3761 100644 --- a/buildbot/master/files/config/master.cfg +++ b/buildbot/master/files/config/master.cfg @@ -63,15 +63,15 @@ c['schedulers'].append(schedulers.AnyBranchScheduler( name="servo-auto", treeStableTimer=None, builderNames=[ + "android", + "arm32", + "arm64", "linux-dev", - "linux-rel", "linux-dev-yaml", - "mac-rel-wpt", + "linux-rel", "mac-dev-unit", "mac-rel-css", - "android", - "arm32", - "arm64", + "mac-rel-wpt", "windows", ], change_filter=util.ChangeFilter(filter_fn=servo_auto_try_filter), @@ -158,17 +158,17 @@ class DynamicServoYAMLBuilder(util.BuilderConfig): ) c['builders'] = [ - DynamicServoBuilder("linux-dev", LINUX_SLAVES, envs.build_linux), - DynamicServoBuilder("linux-rel", LINUX_SLAVES, envs.build_linux), - DynamicServoBuilder("linux-nightly", LINUX_SLAVES, envs.build_linux), 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", LINUX_SLAVES, envs.build_linux), DynamicServoBuilder("mac-dev-unit", MAC_SLAVES, envs.build_mac), - DynamicServoBuilder("mac-rel-wpt", MAC_SLAVES, envs.build_mac), - DynamicServoBuilder("mac-rel-css", MAC_SLAVES, envs.build_mac), DynamicServoBuilder("mac-nightly", MAC_SLAVES, envs.build_mac), - DynamicServoBuilder("android-nightly", CROSS_SLAVES, envs.build_android), + DynamicServoBuilder("mac-rel-css", MAC_SLAVES, envs.build_mac), + DynamicServoBuilder("mac-rel-wpt", MAC_SLAVES, envs.build_mac), # The below builders are not dynamic but rather have hard-coded factories util.BuilderConfig( name="windows", From d30245f9dd86feccd30e400d7ca3e7d7d3d27584 Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Thu, 30 Jun 2016 07:26:31 -0400 Subject: [PATCH 2/3] Enable forcing Linux and Mac nightly builders This should be very useful for testing before release. --- buildbot/master/files/config/master.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildbot/master/files/config/master.cfg b/buildbot/master/files/config/master.cfg index 426f3761..5257dedf 100644 --- a/buildbot/master/files/config/master.cfg +++ b/buildbot/master/files/config/master.cfg @@ -91,8 +91,10 @@ c['schedulers'].append(schedulers.ForceScheduler( "arm64", "linux-dev", "linux-dev-yaml", + "linux-nightly", "linux-rel", "mac-dev-unit", + "mac-nightly", "mac-rel-css", "mac-rel-wpt", "windows", From eaf5c68a8f775eb3b674102c13719523ea0dad2c Mon Sep 17 00:00:00 2001 From: Aneesh Agrawal Date: Thu, 30 Jun 2016 08:11:12 -0400 Subject: [PATCH 3/3] Add Windows nightly builder Also add a single environment to use for uploading nightlies, thus restricting the environment variables passed to the upload script and making it easier to add other uploading environments. Also fix the make_step functions to actually use the configured environment instead of just using self.environment. --- buildbot/master/files/config/environments.py | 6 +++++ buildbot/master/files/config/factories.py | 24 ++++++++++++++------ buildbot/master/files/config/master.cfg | 9 ++++++++ 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/buildbot/master/files/config/environments.py b/buildbot/master/files/config/environments.py index f2e30898..d2d3f6a4 100644 --- a/buildbot/master/files/config/environments.py +++ b/buildbot/master/files/config/environments.py @@ -1,4 +1,5 @@ from passwords import GITHUB_DOC_TOKEN +from passwords import S3_UPLOAD_ACCESS_KEY_ID, S3_UPLOAD_SECRET_ACCESS_KEY class Environment(dict): @@ -115,3 +116,8 @@ def __add__(self, other): 'PKG_CONFIG_PATH': '/usr/lib/aarch64-linux-gnu/pkgconfig', 'SERVO_RUSTC_WITH_GOLD': 'False', }) + +upload_nightly = Environment({ + 'AWS_ACCESS_KEY_ID': S3_UPLOAD_ACCESS_KEY_ID, + 'AWS_SECRET_ACCESS_KEY': S3_UPLOAD_SECRET_ACCESS_KEY, +}) diff --git a/buildbot/master/files/config/factories.py b/buildbot/master/files/config/factories.py index 20e9759b..943bd276 100644 --- a/buildbot/master/files/config/factories.py +++ b/buildbot/master/files/config/factories.py @@ -9,7 +9,6 @@ import yaml import environments as envs -from passwords import S3_UPLOAD_ACCESS_KEY_ID, S3_UPLOAD_SECRET_ACCESS_KEY SERVO_REPO = "https://github.com/servo/servo" @@ -107,10 +106,9 @@ def make_step(self, command): # Provide environment variables for s3cmd elif arg == './etc/ci/upload_nightly.sh': step_kwargs['logEnviron'] = False - step_env['AWS_ACCESS_KEY_ID'] = S3_UPLOAD_ACCESS_KEY_ID - step_env['AWS_SECRET_ACCESS_KEY'] = S3_UPLOAD_SECRET_ACCESS_KEY + step_env = copy.deepcopy(envs.upload_nightly) - step_kwargs['env'] = self.environment + step_kwargs['env'] = step_env return step_class(**step_kwargs) @@ -194,10 +192,9 @@ def make_step(self, command): # Provide environment variables for s3cmd elif arg == './etc/ci/upload_nightly.sh': step_kwargs['logEnviron'] = False - step_env['AWS_ACCESS_KEY_ID'] = S3_UPLOAD_ACCESS_KEY_ID - step_env['AWS_SECRET_ACCESS_KEY'] = S3_UPLOAD_SECRET_ACCESS_KEY + step_env = copy.deepcopy(envs.upload_nightly) - step_kwargs['env'] = self.environment + step_kwargs['env'] = step_env return step_class(**step_kwargs) @@ -246,3 +243,16 @@ def make_win_command(command): env=envs.build_windows), # TODO: run lockfile_changed.sh and manifest_changed.sh scripts ]) + +windows_nightly = ServoFactory([ + # TODO same comments as windows builder + steps.Compile(command=make_win_command("./mach build --release"), + env=envs.build_windows), + steps.Test(command=make_win_command("./mach package --release"), + env=envs.build_windows), + steps.Compile(command=make_win_command( + "./etc/ci/upload_nightly.sh windows" + ), + env=envs.upload_nightly, + logEnviron=False), +]) diff --git a/buildbot/master/files/config/master.cfg b/buildbot/master/files/config/master.cfg index 5257dedf..818007db 100644 --- a/buildbot/master/files/config/master.cfg +++ b/buildbot/master/files/config/master.cfg @@ -98,6 +98,7 @@ c['schedulers'].append(schedulers.ForceScheduler( "mac-rel-css", "mac-rel-wpt", "windows", + "windows-nightly", ], )) c['schedulers'].append(schedulers.Nightly( @@ -107,6 +108,7 @@ c['schedulers'].append(schedulers.Nightly( "android-nightly", "linux-nightly", "mac-nightly", + "windows-nightly", ], hour=1, minute=0, @@ -179,6 +181,13 @@ c['builders'] = [ nextBuild=branch_priority, category="auto", ), + util.BuilderConfig( + name="windows-nightly", + slavenames=WINDOWS_SLAVES, + factory=factories.windows_nightly, + nextBuild=branch_priority, + category="auto", + ), util.BuilderConfig( name="doc", slavenames=LINUX_SLAVES,