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: