blob: 282b366f097e51b803423b5328ee68fbd8424b7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
[[!meta title="Continuous Integration"]]
[[!meta author="Kyllikki"]]
[[!meta date="2016-02-06T11:38:14Z"]]
[[!toc]]
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.
A VPN between the master node and all the build slaves provides a
network where no machines are publicly accessible.
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.
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).
### [[Continuous Integration Debian 9 (Stretch) Setup|continuous_integration/debian_stretch_setup]]
### [[Continuous Integration Debian 8 (Jessie) Setup|continuous_integration/debian_jessie_setup]] - Obsolete
### [[Continuous Integration Debian 7 (Wheezy) Setup|continuous_integration/debian_wheezy_setup]] - Obsolete
### [[Continuous Integration OpenBSD Setup|continuous_integration/openbsd_setup]]
### [[Continuous Integration FreeBSD Setup|continuous_integration/freebsd_setup]]
### [[Continuous Integration Haiku Slave Setup|continuous_integration/haiku_slave_setup]]
### [[Continuous Integration Mac OS X Snow Leopard Setup|continuous_integration/mac_os_x_snow_leopard_setup]]
### [[Continuous Integration Mac OS X Yosemite Setup|continuous_integration/mac_os_x_yosemite_setup]]
## Historical
The old discussion on [[Autobuilder requirements|continuous_integration/autobuilder_requirements]] lists requirements for the new autobuilder.
|