Configuration for Clementine's Buildbot instance
Python Shell Go
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
base Parameterise Fedora base builds Dec 7, 2017
config Build qt5 branch on one builder Feb 4, 2018
kube Add keel config Mar 19, 2018
master Use buildbot 0.8.14 (#9) Oct 6, 2017
slave-android Use sdkmanager instead of old android tool. Oct 20, 2017
slave-debian-jessie-32 Update slaves to use library images Dec 6, 2017
slave-debian-jessie-64 Merge all the apt-get install commands together Dec 28, 2015
slave-fedora-25-32 Base fedora slaves of gcr.io images Dec 7, 2017
slave-fedora-25-64 Bump Fedora & Ubuntu buildslaves. Dec 21, 2016
slave-fedora-26-32 Base fedora slaves of gcr.io images Dec 7, 2017
slave-fedora-26-64 Add zesty and Fedora 26 slaves. Remove old slaves. Aug 10, 2017
slave-mac-cross Use a new mac-cross Aug 10, 2017
slave-mingw Update slaves to use library images Dec 6, 2017
slave-spotify-blob-32 Update slaves to use library images Dec 6, 2017
slave-spotify-blob-64 Update slaves to use library images Dec 6, 2017
slave-transifex D'oh Dec 6, 2017
slave-ubuntu-bionic-32 Add ubuntu bionic slaves Feb 3, 2018
slave-ubuntu-bionic-64 Build qt5 branch on one builder Feb 4, 2018
slave-ubuntu-trusty-32 Update slaves to use library images Dec 6, 2017
slave-ubuntu-trusty-64 Merge all the apt-get install commands together Dec 28, 2015
slave-ubuntu-xenial-32 Update slaves to use library images Dec 6, 2017
slave-ubuntu-xenial-64 Update slaves to use library images Dec 6, 2017
slave-ubuntu-zesty-32 Update slaves to use library images Dec 6, 2017
slave-ubuntu-zesty-64 Add zesty and Fedora 26 slaves. Remove old slaves. Aug 10, 2017
volumes Remove the old non-docker buildbot configs Nov 21, 2015
.gitignore Fix the .gitignore Jan 9, 2016
README.md Update README.md Dec 31, 2015
debootstrap Remove the old non-docker buildbot configs Nov 21, 2015
deployment.yaml Add a second slave Dec 10, 2017
docker-compose.yml Add zesty and Fedora 26 slaves. Remove old slaves. Aug 10, 2017
update_config.py Oops - mount the real /var/www/clementine-player.org Dec 15, 2015

README.md

This directory contains Docker images for Clementine's buildbot.

Containers

  • master: Runs the buildbot master on port 8010. This port is also exposed on the host machine. All slaves connect to the master internally through docker over port 9989.

  • volumes: Data-only container that holds persistent state for the master and all the slaves. This is exposed as the /persistent-data directory in every container.

  • slave-*: Every supported distro has its own container that runs its own buildbot slave. The container has all the packages required to build Clementine.

Containers are built, started and stopped with docker-compose.

  1. First install docker-compose.

  2. Build the containers:

docker-compose build
  1. Then you can start and stop buildbot:
docker-compose up
docker-compose stop
  1. The master is then accessible on http://localhost:8010/.

Credentials

You need certain keys and credentials to be able to use certain builders. These builders will try to pull files from config/ when they run:

  • config/github_id_rsa: .ssh/id_rsa file used for authenticating to github. Used for pushing transifex commits to github.
  • config/passwords-external.json: Passwords for external (non-docker) slaves to connect to buildbot.
  • config/ppa-keys: Used by the PPA builders for uploading packages to PPAs. Get these keys with gpg --export-secret-keys.
  • config/transifexrc: The config file for the transifex client, including the password for the clementinebuildbot user.
  • config/android-remote-properties.txt: The properties file for building the android remote. Contains keystore, keystore.password, key.alias and key.password lines.
  • config/android-remote.keystore.jks: Keys for signing the android remote apk.

Adding new slaves

Replace vivid and 22 with the name of the Ubuntu distro or fedora version that you want to add.

  1. Create the i386 base images:
cd base
./build-fedora-i386.sh 22
./build-ubuntu-i386.sh debian jessie
./build-ubuntu-i386.sh ubuntu vivid
  1. Create the slave-${distro}-${version}-{32,64} directories by copying from the last distro versions and editing the two distro names in the Dockerfile

  2. Add the distro to config/config.json and run ./update_config.py

  3. Build the images and containers and start the slaves:

docker-compose build
docker-compose up
  1. See the builders on http://localhost:8010/builders.

Recreate an image and container

You might need to do this occasionaly to update a distro's packages.

docker-compose build --no-cache --pull slave-ubuntu-vivid-32
docker-compose up -d slave-ubuntu-vivid-32

View the master's log

docker-compose run --entrypoint tail master /persistent-data/master/twistd.log