From ad2917fe98b055f4574c1ccdb23ff7c910155188 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Thu, 26 Feb 2015 23:13:12 +0000 Subject: [PATCH] [BUILDBOT] Instead of distinguishing between regular Buildslaves and Patchbots, let's make all Buildslaves accept patches if you enter something in the ID field. This also highly simplifies my README file :) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Hermès for the idea! svn path=/trunk/buildbot/; revision=2189 --- scripts/README | 53 +++++++++++++++++++++++-------------------- scripts/patching | 6 ++--- scripts/submit_result | 6 +++-- scripts/uploadiso | 6 +++++ 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/scripts/README b/scripts/README index d3bb6d7..746bd03 100644 --- a/scripts/README +++ b/scripts/README @@ -1,32 +1,35 @@ -ReactOS BuildBot Build Scripts for Linux -======================================== +ReactOS BuildBot Build Scripts +============================== -These scripts can be used for the following types of Buildslaves: +Some possible usage scenarios for these scripts: -* Plainbot: Can build, in any combination, Boot-CDs, Live-CDs, Test-CDs, trigger Testbots for testing them and upload the created ISO files -* Testbot: Triggered by a Plainbot, performs regression testing on a Test-CD and submits the results -* Patchbot: Applies a patch, builds a Test-CD, performs regression-testing and submits the results +* Plainbot: Builds a Boot-CD, Live-CD, Test-CD, triggers a Testbot for testing it and uploads the created ISO file. + If a patch ID is given, the patch is applied first, but the build is not uploaded. +* Testbot: Triggered by a Plainbot, performs regression testing on a Test-CD and submits the results. + Generally, this one is implemented as an independent builder to not block the Plainbot doing its other tasks. But its steps can also be integrated inside a Plainbot. -Add the following steps in this order to the Buildmaster's master.cfg depending on what type of Buildslave you want to set up: +Add the following steps in this order to the Buildmaster's master.cfg depending on what type of Buildslave you want to set up. +If your Buildslave is more specific, you may as well leave out some steps. -Step | Plainbot | Testbot | Patchbot | ------------------------------------------------------------------------- -clean YES YES -revert YES -source.SVN update for trunk/reactos YES YES -source.SVN update for trunk/rostests OPTIONAL YES -patching YES -configure (or configure_msvc) YES YES -build_host_tools YES YES -build_reactos bootcd OPTIONAL -build_reactos livecd OPTIONAL -regtestcd OPTIONAL YES -Trigger Testbot OPTIONAL -vmware_clean YES YES (when using sysreg with VMware) -regtest YES YES -submit_result YES YES -uploadiso OPTIONAL + +Step | Plainbot | Testbot +----------------------------------------------------------- +clean * +revert * +source.SVN update for trunk/reactos * +source.SVN update for trunk/rostests * +patching * +configure / configure_msvc * +build_host_tools * +build_reactos bootcd * +build_reactos livecd * +regtestcd * +Trigger Testbot * +vbox_clean / vmware_clean * +regtest * +submit_result * +uploadiso * Configuration files @@ -44,4 +47,4 @@ Testing these scripts --------------------- You can easily test these scripts as follows: * Move to /srv/buildbot/buildername/build - * Run "sudo -u buildbot ../../SCRIPTNAME" \ No newline at end of file + * Run "sudo -u buildbot ../../SCRIPTNAME" diff --git a/scripts/patching b/scripts/patching index 569cda9..72489f9 100755 --- a/scripts/patching +++ b/scripts/patching @@ -1,8 +1,8 @@ #!/bin/bash -# ReactOS BuildBot Build Scripts for Linux -# patching - Patch the tree with the given JIRA attachment ID to the patch file. +# ReactOS BuildBot Build Scripts +# patching - Patch the tree with the given JIRA attachment ID of the patch file. # -# Parameter $1 - Attachment ID +# Parameter $1 - Attachment ID of the patch file clean_exit() { diff --git a/scripts/submit_result b/scripts/submit_result index bb70292..de63bfe 100755 --- a/scripts/submit_result +++ b/scripts/submit_result @@ -1,8 +1,10 @@ #!/bin/bash -# ReactOS BuildBot Build Scripts for Linux +# ReactOS BuildBot Build Scripts # submit_result - Call Testman's BuildBot Aggregator script to collect the regression-testing output by sysreg. # # Parameter $1 - BuildBot Build number of the ReactOS build that has been tested. +# Parameter $2 - Attachment ID of the patch file (this parameter can be evaluated as $ATTACHMENT_ID inside config.inc to set different sourceids for regular and patched builds) +ATTACHMENT_ID=$2 source ../../config.inc if [ "$1" = "" ]; then @@ -19,4 +21,4 @@ if [ "$TESTMAN_OUT" != "OK" ]; then exit 1 fi -exit 0 \ No newline at end of file +exit 0 diff --git a/scripts/uploadiso b/scripts/uploadiso index e0e4506..f62802b 100755 --- a/scripts/uploadiso +++ b/scripts/uploadiso @@ -3,6 +3,7 @@ # uploadiso - Publish the created Boot-CD and Live-CD on iso.reactos.org in compressed files. # # Parameter $1 - SVN Revision number of the build +# Parameter $2 - Attachment ID of the patch file (if this parameter is given, no ISO will be uploaded) source ../../config.inc # Some config for accessing iso.reactos.org, but common to all builders @@ -19,6 +20,11 @@ if [ "$1" = "" ]; then exit 1 fi +if [ "$2" != "" ]; then + echo "* This is a patched build, so nothing to upload!" + exit 0 +fi + BOOTCD=0 if [ -f "$ROS_OUTPUT/reactos/bootcd.iso" ]; then BOOTCD=1