[[!meta title="Continuous Integration"]] [[!meta author="Kyllikki"]] [[!meta date="2016-02-06T11:38:14Z"]] [[!toc]] The CI system is a jenkins instance accessed at ## 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|virtual_host_server]] excepting operating systems which cannot be virtualised (principally MAC OS X). ### [[Debian 10 (Buster) Setup|continuous_integration/debian_buster_setup]] ### [[Debian 9 (Stretch) Setup|continuous_integration/debian_stretch_setup]] ### [[Fedora 26 Setup|continuous_integration/fedora_26_setup]] ### [[OpenBSD Setup|continuous_integration/openbsd_setup]] ### [[FreeBSD Setup|continuous_integration/freebsd_setup]] ### [[Haiku Setup|continuous_integration/haiku_slave_setup]] ### [[Mac OS X Snow Leopard Setup|continuous_integration/mac_os_x_snow_leopard_setup]] ### [[Mac OS X Yosemite Setup|continuous_integration/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|continuous_integration/netsurf_ci_network_diagram.pdf]] 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|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|continuous_integration/autobuilder_requirements]] lists requirements for the new autobuilder. Obsolete slave setups: - [[Debian 8 (Jessie) Setup|continuous_integration/debian_jessie_setup]] - [[Debian 7 (Wheezy) Setup|continuous_integration/debian_wheezy_setup]] - [[Fedora 25 Setup|continuous_integration/fedora_25_setup]]