gluon/contrib/ci/jenkins-community-slave
2020-04-26 00:25:11 +02:00
..
Dockerfile contrib/ci: install rsync on jenkins-community-slaves 2020-04-15 17:56:38 +02:00
README.md contrib/ci: document kvm permissions configuration 2020-04-26 00:25:11 +02:00
slave.py contrib: Set up continuous integration through Jenkins 2019-09-26 16:12:09 +02:00

Gluon CI using Jenkins

Requirements

  • Linux system
    • with docker installed
    • with Hardware Virtualisation (KVM Support)
      • Verify using: lscpu | grep vmx
      • If machine is virtualized host needs to load kvm_intel with nested=1 option and cpuflags need to include vmx

Architecture

Screenshot from 2019-09-24 00-20-32

Installation

You can support the gluon CI with your infrastructure:

  1. You need to query @lemoer (freifunk@irrelefant.net) for credentials.
  2. He will give you a SLAVE_NAME and a SLAVE_SECRET for your host.
  3. Then go to your docker host and substitute the values for SLAVE_NAME and a SLAVE_SECRET in the following statements:
git clone https://github.com/freifunk-gluon/gluon/
cd gluon/contrib/ci/jenkins-community-slave/
docker build -t gluon-jenkins .
mkdir /var/cache/openwrt_dl_cache/
chown 1000:1000 /var/cache/openwrt_dl_cache
echo "z /dev/kvm 0666 - kvm -" > /etc/tmpfiles.d/kvm.conf
systemd-tmpfiles --create
docker run --detach --restart always \
    --env "SLAVE_NAME=whoareyou" \
    --env "SLAVE_SECRET=changeme" \
    --device /dev/kvm:/dev/kvm \
    --volume /var/cache/openwrt_dl_cache/:/dl_cache \
    gluon-jenkins
  1. Check whether the instance is running correctly:
    • Your node should appear here.
    • When clicking on it, Jenkins should state "Agent is connected." like here: Screenshot from 2019-09-24 01-00-52
  2. Your docker container needs to be rebuilt, when the build dependencies of gluon change. As soon as build dependencies have changed, the build dependency api level has to be raised. After you rebuilt your docker container, notifiy @lemoer, so he can bump the versioning number.

Backoff

  • If @lemoer is not reachable, please be patient at first if possible. Otherwise contact info@hannover.freifunk.net or join the channel #freifunkh on hackint.