Colin Finck b7f59ec24d
[WORKER] Reboot Windows testers after every run of run_rostests
This works by putting the new `buildbot_start.cmd` into Scheduled Tasks (run on logon).
It launches the BuildBot worker and waits for it to finish, then reboots the Windows VM.

The BuildBot worker is reconfigured to watch the `shutdown.stamp` file in the basedir, and ask the Buildmaster for a graceful shutdown of the worker if that file's timestamp has changed.
This works via BuildBot's allow_shutdown Worker config option.

All of this together should gracefully reboot the Windows VM after every test, even when multiple tests are queued and without causing any BuildBot exceptions (which always happen on unexpected shutdowns).

Dedicated to Timo, who asked me about this for months and also found the allow_shutdown option :)
2022-07-13 18:29:08 +02:00
..

ReactOS BuildBot Build Scripts
==============================

Some possible usage scenarios for these scripts:

* 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.
If your Buildslave is more specific, you may as well leave out some steps.


Step                                   | Plainbot | Testbot
-----------------------------------------------------------
clean                                       *
Git update                                  *
prepare_source                              *
configure                                   *
build_reactos bootcd                        *
build_reactos livecd                        *
regtestcd                                   *
Trigger Testbot                             *
vbox_clean / vmware_clean                              *
regtest                                                *
submit_result                                          *
uploadiso                                   *


Configuration files
-------------------
* buildbot.tac - Buildslave configuration file for BuildBot
* config.inc - Script settings, shared for all builders of this buildslave
* builder_config.inc - File in the "builddir" of each builder containing per-builder overrides of the config.inc settings

Also copy the following files to the "builddir" of each builder and rename them
* sysreg.xml.template -> sysreg.xml - General Settings for sysreg2
* reactos.xml.template -> reactos.xml - Settings of the VM used by sysreg2 and libvirt


Testing these scripts
---------------------
You can easily test these scripts as follows:
  * Move to /srv/buildbot/buildername/build
  * Run "sudo -u buildbot ../../SCRIPTNAME"