The CI system is a jenkins instance accessed at http://ci.netsurf-browser.org/

Master

The master instance is a VPS provided by Mythic beasts.

The Jenkins install on the master server is a snapshot release version.

generating openvpn keys

the VPN is setup to use certificates and signed keys, each client needs a certificate and key set generating for its openvpn setup.

become superuser on master

cd open-vpn-easy
source ./vars
./build-key ciworker17

answer questions and set no password

keys/certificates are written to open-vpn-easy/keys and can be copied to teh clients as required.

Slave

The majority of the build slaves are provided by our own virtual host server excepting operating systems which cannot be virtualised (principally MAC OS X).

Debian 10 (Buster) Setup

Debian 9 (Stretch) Setup

Fedora 26 Setup

OpenBSD Setup

FreeBSD Setup

Haiku Setup

Mac OS X Snow Leopard Setup

Mac OS X Yosemite Setup

Network

A VPN between the master node and all the build slaves provides a network where no machines are publicly accessible.

A network map has been produced to make visualising the private network easier.

The network uses OpenVPN to create a LAN which other systems connect. The virtual host server instances are all bridged to the LAN on a single openVPN link. All the physical nodes for Mac OS X, armhf etc. are bridged via Vincents router through a single openvpn link. The scaleway and other nodes connect with separate openvpn connections.

The master node also runs a dnsmasq instance which provides name service and DHCP for the CI LAN. The dnsmasq config file has static mappings for the CI slaves DHCP responses using 192.168.211.100 for CI worker 0 and so on up the range to 192.168.211.130 for worker 30

All virtual machines use locally administered MAC adresses in the 0E:xx:xx:xx:x:xx prefix range.

  • 0e:00:00:00:01:xx used for phoenix VM host
  • 0e:00:00:00:02:xx used for arrch64vmhost VM host
  • 0e:00:00:00:03:xx used for scaleway VM host

In addition ssh based tunnels are used to copy data between CI nodes.

Historical

The old discussion on Autobuilder requirements lists requirements for the new autobuilder.

Obsolete slave setups: