Go to file
Steve Sakoman a8b69d3eb3 schedulers: update branchdefaults for walnascar
Signed-off-by: Steve Sakoman <steve@sakoman.com
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-24 21:41:16 +01:00
docker docker: Allow to add several local workers 2025-03-06 14:30:07 +00:00
reporters Drop wikilog plugin, we're not going back to it! 2023-09-28 10:54:36 +01:00
steps builders: Fix configuration for buildbot 4 2025-02-10 18:22:57 +01:00
yocto_console_view releaseselector: Fix page scroll on selector use 2025-02-24 10:31:49 +00:00
builders.py builders: Rework least loaded worker finding in nextWorker() 2025-03-07 14:13:01 +00:00
config.py config: Stop oe-selftest-armhost from running on 20.04 2025-06-21 15:05:22 +01:00
COPYING Initial prototype of using yocto-autobuilder-helper scripts 2018-02-22 10:38:19 +00:00
default_mail.txt default_mail.txt: Fix second typo 2021-01-28 22:29:29 +00:00
LICENSE Initial commit 2018-02-22 10:31:40 +00:00
master.cfg master.cfg: Increase default number of builds shown on the worker page 2025-03-12 12:16:09 -07:00
README-Guide.md README-Guide: Fix spaces in README-Guide 2024-10-23 11:35:23 +01:00
README-WALKTHROUGHS.md README: Tweak to match the username consistently 2023-05-04 16:25:21 +01:00
README.md README: update patch submission address 2024-03-28 17:51:03 +00:00
schedulers.py schedulers: update branchdefaults for walnascar 2025-06-24 21:41:16 +01:00
SECURITY.md SECURITY.md: Add file 2023-10-24 13:01:34 +01:00
services.py Drop wikilog plugin, we're not going back to it! 2023-09-28 10:54:36 +01:00
TODO Drop wikilog plugin, we're not going back to it! 2023-09-28 10:54:36 +01:00
workers.py Add SPDX License Identifiers 2021-01-18 23:49:01 +00:00
www.py Add SPDX License Identifiers 2021-01-18 23:49:01 +00:00

yoctoabb

Prototype of using yocto-autobuilder-helper from vanilla buildbot to replicate yocto-autobuilder configuration

Introduction

The goal of this repository is to provide a buildbot configuration for use with the yocto-autobuilder-helper[1] scripts which has as little code and as few custom buildbot extensions as possible. The configuration merely collects enough inputs from the user to furnish the yocto-autobuilder-helper scripts with sufficient inputs to do their work.

The configuration was written for the latest (at time of writing) buildbot 1.0 release.

Overview

The role of this buildbot configuration is simple, we want to provide sufficient user-customisable parameters to trigger the yocto-autobuilder-helpers build scripts.

Each builder, mapping to a named configuration in yocto-autobuilder-helper, is created with steps and properties required to invoke the helper scripts in the expected fashion.

We create custom schedulers for each builder with parameters configured on the schedulers which can supply custom versions of the required values for the yocto-autobuilder-helper script parameters.

Code layout

  • builders.py -- configures the builders with minimal buildsteps to invoke the yocto-autobuilder-helper scripts reporters/
    • swatbot.py -- our custom plugin to write info on build failures to a swatbot instance
  • steps/
    • writelayerinfo.py -- write the user supplied (or default) repos to a JSON file for use by the scripts
  • config.py -- goal is to contain all values that might need changing to redeploy this code elsewhere. Goal hasn't yet been met.
  • master.cfg -- calls into other scripts to do most configuration. Cluster specific config still lives here (i.e. controller url).
  • schedulers.py -- sets up the force schedulers with controls for modifying inputs for each builder.
  • services.py -- configures irc, mail and swatbot reporters.
  • workers.py -- configures the worker objects
  • www.py -- sets up the web UI

Customisations

Whilst the goal is as little custom code as possible, there were some customisations required both in order to support the yocto-autobuilder-helper workflows and to replicate the workflows established with the outgoing yocto-autobuilder[2].

WriteLayerInfo buildstep

steps/writelayerinfo.py -- implements a simple custom buildset to iterate the repo_, branch_, and commit_ properties set by the schedulers and write a JSON file with the user's values.

Swatbot reporter

reporters/swatbot.py -- a buildbot service to listen for build failures and write some information on them to the swatbot instance configured.

Deployment

The following deployment steps assume that the target system has a copy of buildbot installed.

Various pieces of functionality require that a copy of the yocto-autobuilder-helper code be available in the home directory of the user running buildbot at ~/yocto-autobuilder-helper.

Note: If using a reverse proxy be aware that modern buildbot uses a websocket for various communications between the master and the web UI. Refer to the buildbot documentation for information on how to correctly configure a reverse proxy: http://docs.buildbot.net/latest/manual/cfg-www.html#reverse-proxy-configuration

Upstream Yocto Project autobuilder

on the controller_

$ buildbot create-master <yocto-controller>
$ cd <yocto-controller>
$ git clone https://git.yoctoproject.org/git/yocto-autobuilder2 yoctoabb
$ cd ..
$ ln -rs <yocto-controller>/yoctoabb/master.cfg <yocto-controller>/master.cfg
$ $EDITOR <yocto-controller>/yoctoabb/master.cfg
<modify c['buildbotURL']>
$ $EDITOR <yocto-controller>/yoctoabb/services.py
<Enable desired services, set appropriate configuration values>
$ $EDITOR <yocto-controller>/yoctoabb/www.py
<Configure and enable autorisation if desired>
$ $EDITOR <yocto-controller>/yoctoabb/config.py
<Modify configuration options such as worker configuration, etc.>
$ buildbot start <yocto-controller>
$ cd ..
## should be above <yocto-controller> location
git clone https://git.yoctoproject.org/git/yocto-autobuilder-helper

on the worker

$ buildbot-worker create-worker <yocto-worker> <localhost> <example-worker> <pass>
$ buildbot-worker start <yocto-worker>

NOTE: the 3rd parameter to create-worker, the worker name, need not be hard-coded, for example pass hostname to use the host's configured name

None upstream users

TODO: requires a custom config.json for yocto-autobuilder-helper

  1. http://git.yoctoproject.org/clean/cgit.cgi/yocto-autobuilder-helper
  2. http://git.yoctoproject.org/clean/cgit.cgi/yocto-autobuilder

Contributions

Patches for this code should be sent to the yocto-patches@lists.yoctoproject.org mailing list with [yocto-autobuilder2] in the subject.