-
Notifications
You must be signed in to change notification settings - Fork 26
continuous_integration
!meta title="Continuous Integration" !meta author="Kyllikki" !meta date="2016-02-06T11:38:14Z"
The CI system is a jenkins instance accessed at http://ci.netsurf-browser.org/
The master instance is a VPS provided by Mythic beasts.
The Jenkins install on the master server is a snapshot release version.
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.
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).
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.
The old discussion on Autobuilder requirements lists requirements for the new autobuilder.
Obsolete slave setups: