diff options
-rw-r--r-- | continuous_integration.mdwn | 20 | ||||
-rw-r--r-- | continuous_integration/fedora_25_setup.mdwn | 60 | ||||
-rw-r--r-- | virtual_host_server.mdwn | 50 |
3 files changed, 70 insertions, 60 deletions
diff --git a/continuous_integration.mdwn b/continuous_integration.mdwn index 282b366..8eeb45d 100644 --- a/continuous_integration.mdwn +++ b/continuous_integration.mdwn @@ -57,22 +57,24 @@ 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]] +### [[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 +### [[Fedora 25 Setup|continuous_integration/fedora_25_setup]] -### [[Continuous Integration OpenBSD Setup|continuous_integration/openbsd_setup]] +### [[OpenBSD Setup|continuous_integration/openbsd_setup]] -### [[Continuous Integration FreeBSD Setup|continuous_integration/freebsd_setup]] +### [[FreeBSD Setup|continuous_integration/freebsd_setup]] -### [[Continuous Integration Haiku Slave Setup|continuous_integration/haiku_slave_setup]] +### [[Haiku Setup|continuous_integration/haiku_slave_setup]] -### [[Continuous Integration Mac OS X Snow Leopard Setup|continuous_integration/mac_os_x_snow_leopard_setup]] +### [[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]] +### [[Mac OS X Yosemite Setup|continuous_integration/mac_os_x_yosemite_setup]] ## Historical +### [[Continuous Integration Debian 8 (Jessie) Setup|continuous_integration/debian_jessie_setup]] - Obsolete + +### [[Continuous Integration Debian 7 (Wheezy) Setup|continuous_integration/debian_wheezy_setup]] - Obsolete + The old discussion on [[Autobuilder requirements|continuous_integration/autobuilder_requirements]] lists requirements for the new autobuilder. diff --git a/continuous_integration/fedora_25_setup.mdwn b/continuous_integration/fedora_25_setup.mdwn index 1ac1786..cce96ac 100644 --- a/continuous_integration/fedora_25_setup.mdwn +++ b/continuous_integration/fedora_25_setup.mdwn @@ -21,7 +21,7 @@ Run through the base install steps ensuring to create the netsurf user. to obtain required packages - dnf install fedora-packager fedora-review java-1.8.0-openjdk-headless gcc clang git pkgconfig libcurl-devel libjpeg-devel bison flex expat-devel libpng-devel openssl-devel screen check gperf perl-HTML-Parser ccache + dnf install fedora-packager fedora-review java-1.8.0-openjdk-headless gcc clang git pkgconfig libcurl-devel libjpeg-devel bison flex expat-devel libpng-devel openssl-devel screen check gperf perl-HTML-Parser ccache For gtk2 builds @@ -38,41 +38,38 @@ Development tool group using ### config -On master jenkins use "manage nodes" to create new node. Ensure "remote -fs root" is set to /var/lib/jenkins add variable JENKINS\_HOME set to -/var/lib/jenkins +On master jenkins use "manage nodes" to create new node. Ensure "remote fs root" is set to /var/lib/jenkins add variable JENKINS\_HOME set to /var/lib/jenkins As superuser: -- create jenkins user +create jenkins user - adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins + adduser --system --create-home --home-dir /var/lib/jenkins/ jenkins -- ensure /opt is setup correctly to allow toolchains to be built on the node +ensure /opt is setup correctly to allow toolchains to be built on the node - mkdir -p /opt/netsurf - chown jenkins:jenkins /opt/netsurf + mkdir -p /opt/netsurf + chown jenkins:jenkins /opt/netsurf -- become jenkins user +become jenkins user - su -s/bin/bash - jenkins + su -s/bin/bash - jenkins -- create ssh keypair (accept defaults - no password) +create ssh keypair (accept defaults - no password) - ssh-keygen -t rsa -C "netsurf@nsciworker17.netsurf-browser.org" + ssh-keygen -t rsa -C "netsurf@nsciworker17.netsurf-browser.org" -- copy .ssh/id\_rsa.pub from worker to jenkins master node and append - to /home/netsurf/.ssh/authorized\_keys +copy .ssh/id\_rsa.pub from worker to jenkins master node and append to /home/netsurf/.ssh/authorized\_keys - scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:nsciworker17_id_rsa.pub + scp .ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:nsciworker17_id_rsa.pub -- get jenkins slave jar +get jenkins slave jar wget http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar -- exit jenkins user shell +exit jenkins user shell -- create ns-ci-worker.service file +create ns-ci-worker.service file [Unit] Description=Netsurf CI worker @@ -82,7 +79,7 @@ As superuser: [Service] Type=simple - ExecStart=/bin/java -Djava.awt.headless=true -jar /var/lib/jenkins slave.jar -jnlpUrl http://ci.netsurf-browser.org/jenkins/computer/nsworker17/slave-agent.jnlp -secret 0123456789abcdef01234567890abcdef + ExecStart=/bin/java -Djava.awt.headless=true -jar /var/lib/jenkins/slave.jar -jnlpUrl http://ci.netsurf-browser.org/jenkins/computer/ciworker17/slave-agent.jnlp -secret 0123456789abcdef01234567890abcdef Restart=always RestartSec=60 StartLimitInterval=0 @@ -91,8 +88,11 @@ As superuser: [Install] WantedBy=multi-user.target +untill [this bug](https://bugzilla.redhat.com/show_bug.cgi?id=1358476) is resolved it is necessary to symlink the jli library object somewhere the rpath faliure does not affect. -- install and start new service + # ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-1.b12.fc25.x86_64/jre/lib/amd64/jli/libjli.so /usr/lib64/libjli.so + +install and start new service install -D -m 644 ns-ci-worker.service /usr/lib/systemd/system/ns-ci-worker.service systemctl daemon-reload @@ -102,21 +102,3 @@ As superuser: - - - - - -- create jenkins-slave.sh ensuring the secret key is correct - - #!/bin/bash - - - -- run screen - -- run jenkins-slave.sh - -- detach screen - - diff --git a/virtual_host_server.mdwn b/virtual_host_server.mdwn index 2b3def8..1d66542 100644 --- a/virtual_host_server.mdwn +++ b/virtual_host_server.mdwn @@ -4,11 +4,10 @@ [[!toc]] The system providing the -virtual host services for the NetSurf project is currently named -phoenix. +virtual host services for the NetSurf project is currently named phoenix. -Access is \*only\* via the NetSurf VPN. For VPN access contact vince -though you can also use your ssh key access to ci.netsurf-browser.org +Access is \*only\* via the NetSurf VPN. For VPN access contact vince@netsurf-browser.org +Developers can also use their ssh key access to ci.netsurf-browser.org and on from there phoenix is currently 192.168.211.50 if the DNS is unavailable @@ -20,15 +19,41 @@ Become superuser with sudo ### Debian VPS If you are creating a new Debian box there is a helper script -(new-wheezy-vps.sh ) which just just need to pass a system name to and +(new-stretch-vps.sh ) which just just need to pass a system name to and you will get a 40G disc/ 512MB RAM system. for example: -`new-wheezy-vps.sh ciworker13` +`new-stretch-vps.sh ciworker18` + +will create a system named ciworker18 with 40G of disc and 512MB of +memory with the Debian stretch boot iso connected to the cdrom drive. + +### Fedora + +- create lvm device for the system + + lvcreate --size 40G -n nsciworker18 vg + +- Ensure the OS install dvd is in /var/lib/libvirt/images/ + +- Create the virtual machine + + virt-install -n nsciworker18 -r 1024 \ + --disk path=/dev/mapper/vg-${VDSNAME},bus=virtio \ + --accelerate \ + --network=bridge:${VDSBRIDGE} \ + --connect=qemu:///system \ + --noautoconsole -v \ + --nographics \ + --os-type=linux \ + --location /var/lib/libvirt/images/Fedora-Server-dvd-x86_64-25-1.3.iso \ + --extra-args='console=tty0 console=ttyS0,115200n8 serial' + +- Once running the serial console can be used + + virsh console nsciworker18 -will create a system named ciworker13 with 40G of disc and 512MB of -memory with the Debian wheezy boot iso connected to the cdrom drive. ### Other VPS @@ -36,16 +61,17 @@ The manual setup for other systems is: - create lvm device for the system -`lvcreate --size 40G -n system_name vg` + lvcreate --size 40G -n system_name vg - if the OS requires a cdrom install media download and place in /var/lib/libvirt/images/ + - use virt install to create the new VM substitutig appropriate values for volume name, memory, boot disc -`virt-install -n ciworker13 -r 512 --disk path=/dev/mapper/vg-ciworker13,bus=virtio \` -`-c /var/lib/libvirt/images/cd54.iso --accelerate --network=bridge:br0 \` -`--connect=qemu:///system --vnc --noautoconsole -v` + virt-install -n ciworker13 -r 512 --disk path=/dev/mapper/vg-ciworker13,bus=virtio \ + -c /var/lib/libvirt/images/cd54.iso --accelerate --network=bridge:br0 \ + --connect=qemu:///system --vnc --noautoconsole -v Admin ----- |