This project is a collection of python scripts that has the sole purpose of showing the status of all builds on a Jenkins Server. This is meant to be a multi unit application, so all configuration of the instance is kept in an etcd property dictionary, i.e. keeping each running instance stateless.
The hardware components of this project is the following:
- Raspberry Pi Zero W
- blinkt! - an 8 LED display from Pimoroni
The third party python packages of this project is the following:
Without these packages installed, this script will fail.
- Install etcd:
pip3 install etcd3
- Install Jenkins API:
pip3 install jenkinsapi
The blinkt! library is currently only supported on a Raspberry Pi
The easiest way to run the system locally is to use Docker as a way to have Jenkins and etcd available
The docker images do not run on a raspberry pi out of the box. There exists custom images, but I prefer just to use my laptop.
- etcd:
docker run -d -p 2379:2379 -p 2380:2380 --env "ETCDCTL_API=3" --name etcd quay.io/coreos/etcd:latest /usr/local/bin/etcd --listen-client-urls http://0.0.0.0:2379 --initial-advertise-peer-urls http://localhost:2380 --advertise-client-urls http://localhost:2379
- jenkins:
docker run -d -p 8080:8080 --name jenkins jenkins/jenkins:lts
- configure Jenkins so it can be used.