cyraxjoe / bolted-buildbot

Nix wrapper on top of buildbot to manage the configuration of the master and workers in nix.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bolted Buildbot

Nix wrapper on top of buildbot to manage the configuration of the master and workers in nix.

Overview

Bolted Buildbot is a set of nix expression and bash scripts that allows you to reliable manage your CI/CD/CB systems based on buildbot, by adding a set of additional scripts to manage your buildbot instance and more importantly to consider the buildbot configuration as a dependency of the deployment.

By considering the Builtbot Master or Worker configuration as a dependency you can safely upgrade and rollback your configuration changes.

The core idea is that Bolted Buildbot allows you to tread your CI system with lot less care by forcing you to go over the nix layer first and implicitly visioning your changes by making your current configs read only and any new change would have to be on a new derivation.

Getting started

First and foremost, you have to have Nix either implicitly by using NixOS or by using just Nix on MacOS or Linux.

The main entry point to use Bolted Buildbot is by using release.nix and configure the parameters in the nix expression.

Parameters:

nixpkgs
It should point to a checkout of nixpkgs preferably to a recent stable release like: 18.03. By default it will try to use the envvar NIX_PATH for <nixpkgs>.
masterSrc
The master source. Default to null.
masterConfigFile
Master config file in JSON format. Default to null.
masterPlugins
Master buildbot plugins. Default to [ "www" "console-view" "waterfall-view" "grid-view" "wsgi-dashboards" "badges" ].
externalMasterDir
Base directory on which the Master Bolted Buildbot would be deployed. Default to /tmp/bbb-master.
externalWorkerDir
Base directory on which the Worker Bolted Buildbot would be deployed. Default to /tmp/bbb-worker.
workerConfigFile
Worker config file in JSON format. Default to null

About

Nix wrapper on top of buildbot to manage the configuration of the master and workers in nix.

License:MIT License


Languages

Language:Nix 50.1%Language:Python 42.6%Language:Shell 7.3%