From 90a93ee16d3374309dd36842f75a034706ce40e8 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Tue, 14 Feb 2017 09:36:24 +0000 Subject: move CI section to subdirectory --- autobuilder_requirements.mdwn | 25 -- continuous_integration.mdwn | 22 +- .../autobuilder_requirements.mdwn | 25 ++ continuous_integration/debian_jessie_setup.mdwn | 421 +++++++++++++++++++++ continuous_integration/debian_wheezy_setup.mdwn | 161 ++++++++ continuous_integration/freebsd_setup.mdwn | 67 ++++ continuous_integration/haiku_slave_setup.mdwn | 83 ++++ continuous_integration/mac_os_x_setup.mdwn | 9 + .../mac_os_x_snow_leopard_setup.mdwn | 80 ++++ .../mac_os_x_yosemite_setup.mdwn | 77 ++++ .../manual_debian_wheezy_setup.mdwn | 9 + .../manual_haiku_slave_setup.mdwn | 9 + continuous_integration/manual_openbsd_setup.mdwn | 9 + continuous_integration/openbsd_setup.mdwn | 127 +++++++ continuous_integration/setup_haiku_slave.mdwn | 7 + continuous_integration_debian_jessie_setup.mdwn | 421 --------------------- continuous_integration_debian_wheezy_setup.mdwn | 164 -------- continuous_integration_freebsd_setup.mdwn | 67 ---- continuous_integration_haiku_slave_setup.mdwn | 83 ---- continuous_integration_mac_os_x_setup.mdwn | 9 - ...us_integration_mac_os_x_snow_leopard_setup.mdwn | 80 ---- ...inuous_integration_mac_os_x_yosemite_setup.mdwn | 77 ---- ...ous_integration_manual_debian_wheezy_setup.mdwn | 9 - ...nuous_integration_manual_haiku_slave_setup.mdwn | 9 - continuous_integration_manual_openbsd_setup.mdwn | 9 - continuous_integration_openbsd_setup.mdwn | 127 ------- continuous_integration_setup_haiku_slave.mdwn | 7 - 27 files changed, 1094 insertions(+), 1099 deletions(-) delete mode 100644 autobuilder_requirements.mdwn create mode 100644 continuous_integration/autobuilder_requirements.mdwn create mode 100644 continuous_integration/debian_jessie_setup.mdwn create mode 100644 continuous_integration/debian_wheezy_setup.mdwn create mode 100644 continuous_integration/freebsd_setup.mdwn create mode 100644 continuous_integration/haiku_slave_setup.mdwn create mode 100644 continuous_integration/mac_os_x_setup.mdwn create mode 100644 continuous_integration/mac_os_x_snow_leopard_setup.mdwn create mode 100644 continuous_integration/mac_os_x_yosemite_setup.mdwn create mode 100644 continuous_integration/manual_debian_wheezy_setup.mdwn create mode 100644 continuous_integration/manual_haiku_slave_setup.mdwn create mode 100644 continuous_integration/manual_openbsd_setup.mdwn create mode 100644 continuous_integration/openbsd_setup.mdwn create mode 100644 continuous_integration/setup_haiku_slave.mdwn delete mode 100644 continuous_integration_debian_jessie_setup.mdwn delete mode 100644 continuous_integration_debian_wheezy_setup.mdwn delete mode 100644 continuous_integration_freebsd_setup.mdwn delete mode 100644 continuous_integration_haiku_slave_setup.mdwn delete mode 100644 continuous_integration_mac_os_x_setup.mdwn delete mode 100644 continuous_integration_mac_os_x_snow_leopard_setup.mdwn delete mode 100644 continuous_integration_mac_os_x_yosemite_setup.mdwn delete mode 100644 continuous_integration_manual_debian_wheezy_setup.mdwn delete mode 100644 continuous_integration_manual_haiku_slave_setup.mdwn delete mode 100644 continuous_integration_manual_openbsd_setup.mdwn delete mode 100644 continuous_integration_openbsd_setup.mdwn delete mode 100644 continuous_integration_setup_haiku_slave.mdwn diff --git a/autobuilder_requirements.mdwn b/autobuilder_requirements.mdwn deleted file mode 100644 index 511fec8..0000000 --- a/autobuilder_requirements.mdwn +++ /dev/null @@ -1,25 +0,0 @@ -[[!meta title="Autobuilder requirements"]] -[[!meta author="Tlsa"]] -[[!meta date="2009-07-08T13:38:43Z"]] - - -[[!toc]] The current autobuilder -script is in need of an overhaul. Additionally, we need more features -for it to be useful in the future. This page enumerates the features we -need. - -- Automated fetch of component sources -- Detection of updated components -- Configurable installation prefix/destdir and build environment -- Ability to specify which versions of components are built for a - given product -- Dependency tracking (so, e.g a change to Hubbub results in a new - NetSurf binary) -- Robust rewriting of URLs in documentation (maybe better handled in - component buildsystems) -- Retain features of existing autobuild.pl -- Automated packaging of components for release -- Automated creation of NSTools distribution for RISC OS. -- Automatically run component testsuites, notifying any failures. - Also, compute code coverage statistics. - diff --git a/continuous_integration.mdwn b/continuous_integration.mdwn index 193d8d9..c9ab9bd 100644 --- a/continuous_integration.mdwn +++ b/continuous_integration.mdwn @@ -6,11 +6,10 @@ [[!toc]] The CI system is a jenkins instance on -The old discussion on [[Autobuilder requirements|autobuilder_requirements]] — +The old discussion on [[Autobuilder requirements|continuous_integration/autobuilder_requirements]] — lists requirements for the new autobuilder. -Master ------- +## Master The master instance is a VPS provided by Mythic beasts. @@ -20,23 +19,22 @@ tunnels used to copy data between CI nodes. The Jenkins install on the master server is a snapshot release version -Slave ------ +## 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 Jessie Setup|continuous_integration_debian_jessie_setup]] +### [[Continuous Integration Debian Jessie Setup|continuous_integration/debian_jessie_setup]] -### [[Continuous Integration Debian Wheezy Setup|continuous_integration_debian_wheezy_setup]] +### [[Continuous Integration Debian Wheezy Setup|continuous_integration/debian_wheezy_setup]] -### [[Continuous Integration OpenBSD Setup|continuous_integration_openbsd_setup]] +### [[Continuous Integration OpenBSD Setup|continuous_integration/openbsd_setup]] -### [[Continuous Integration FreeBSD Setup|continuous_integration_freebsd_setup]] +### [[Continuous Integration FreeBSD Setup|continuous_integration/freebsd_setup]] -### [[Continuous Integration Haiku Slave Setup|continuous_integration_haiku_slave_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 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]] +### [[Continuous Integration Mac OS X Yosemite Setup|continuous_integration/mac_os_x_yosemite_setup]] diff --git a/continuous_integration/autobuilder_requirements.mdwn b/continuous_integration/autobuilder_requirements.mdwn new file mode 100644 index 0000000..511fec8 --- /dev/null +++ b/continuous_integration/autobuilder_requirements.mdwn @@ -0,0 +1,25 @@ +[[!meta title="Autobuilder requirements"]] +[[!meta author="Tlsa"]] +[[!meta date="2009-07-08T13:38:43Z"]] + + +[[!toc]] The current autobuilder +script is in need of an overhaul. Additionally, we need more features +for it to be useful in the future. This page enumerates the features we +need. + +- Automated fetch of component sources +- Detection of updated components +- Configurable installation prefix/destdir and build environment +- Ability to specify which versions of components are built for a + given product +- Dependency tracking (so, e.g a change to Hubbub results in a new + NetSurf binary) +- Robust rewriting of URLs in documentation (maybe better handled in + component buildsystems) +- Retain features of existing autobuild.pl +- Automated packaging of components for release +- Automated creation of NSTools distribution for RISC OS. +- Automatically run component testsuites, notifying any failures. + Also, compute code coverage statistics. + diff --git a/continuous_integration/debian_jessie_setup.mdwn b/continuous_integration/debian_jessie_setup.mdwn new file mode 100644 index 0000000..fb794a8 --- /dev/null +++ b/continuous_integration/debian_jessie_setup.mdwn @@ -0,0 +1,421 @@ +[[!meta title="Continuous Integration Debian Jessie Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2016-07-06T12:46:14Z"]] + + +[[!toc]] + +Debian jessie (8.x) OS install +------------------------------ + +### amd64 VDS install from media + +[[Virtual server setup|virtual_host_server]] + +Install minimal system from netinst CD (attached when VDS is created on +phoenix) Config options: + +- In the "role" selection select "ssh server" and "system utilities" + only. +- The whole disc default partitioning is fine +- The base user the install insists on creating should be the netsurf + user. +- Boot loader in MBR + +Once installed: + +- install sudo package and add netsurf user to sudo group +- edit /etc/default/grub + +`GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"` + +`# update-grub2` + +### arm64 VDS install + +[[ARM64 virtual server setup|virtual_host_server_arm64]] + +Once installed: + +- create netsurf user +- install sudo package and add netsurf user to sudo group +- edit /etc/inittab comment pty 3 through 6 and uncomment serial T0 +- enable backports + +`echo "deb `[`http://http.debian.net/debian`](http://http.debian.net/debian)` jessie-backports main" > /etc/apt/sources.list.d/backports.list` +`apt-get update` + +- install updated kernel + +`apt-get install linux-image-4.3.0-0.bpo.1-arm64` + +### Banana Pi + +This system is a dual core ARMv7 allwinner using the armhf ABI + +Used the install SD media from +[[http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/ Igor Pecovnik|http///www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/_igor_pecovnik]] + +- unzip and write raw file to full size SD card. + +Once installed: + +- first login as root:1234 which will need to be immediately changed +- use the nand-sata-install script and moved the install to sata disc. + The drive needs to be a clean drive with a recognised partition + table (DOS or GPT) and a single partition where the OS will be + installed. +- edit /etc/init.d/armhwinfo to remove the toilet dynamic MOTD banner +- (re)move /etc/bash.bashrc.custom as it issues a lot of unnecessary + commands +- adduser netsurf +- change /etc/apt/sources.list to point at a local mirror +- apt-get update +- apt-get upgrade +- install sudo package and add netsurf user to sudo group + +### Raspberry Pi 2 + +This system is a quad core ARMv7 Broadcom using the armhf ABI + +Used install media from [[http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/ Sjored|http///sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/_sjored]] + +- unpack onto micro SD card with bmap-tools + +`On any debian-based linux type "sudo apt-get install bmap-tools" and install it.` +`Then type "sudo bmaptool copy --nobmap 'yourlocation/jessie-rpi2.img' /dev/sdx" (Change yourlocation to the location of the .img file and sdx for the letter where the SD is mounted, if you don't know it type "sudo fdisk -l" and look for it).` + +Once installed: + +- first login as root:debian which will need to be immediately changed +- Prevent package FLASH-KERNEL UPDATING FROM OFFICIAL REPO WITH APT + PINNING + +`'touch /etc/apt/preferences.d/flash-kernel' create a new file` +`'vi /etc/apt/preferences.d/flash-kernel' edit it an add the following lines to it:` +`Package: flash-kernel` +`Pin: origin repositories.collabora.co.uk` +`Pin-Priority: 1000` +`'apt-cache policy flash-kernel' check if the package is pinned` + +- change /etc/apt/sources.list to point at a local mirror +- apt-get update +- apt-get upgrade +- adduser netsurf +- install sudo package and add netsurf user to sudo group + +### Orange Pi PC + +This system is a quad core ARMv7 allwinner H3 using the armhf ABI + +Used "mini" install media from +[[http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342 loboris|http///www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342_loboris]] + +- unpack image and write to micro SD card and configure as per loboris + instructions, careful installation steps are not immediately obvious + +Once installed: + +- first login as orangepi:orangepi which will need to be immediately + changed + +`* superuser available via sudo -i` + +- change /etc/apt/sources.list to point at a local mirror +- apt-get update +- apt-get upgrade +- alter orangepi user to netsurf by editing + +`/etc/group (dont forget to replace orangepi on the sudo group)` +`/etc/passwd` +`/etc/shadow` +`mv /home/orangepi /home/netsurf` + +Packaged CI worker install +-------------------------- + +Do a base OS install + +The recommended hostname for CI workers is "ciworker13" this allows us +to clearly identify CI worker nodes. Note historically we have used +"cislave1" which has been objected to by several users. See +[[https://wiki.debian.org/HowTo/ChangeHostname changing hostname|https///wiki.debian.org/howto/changehostname_changing_hostname]] on how to achive this. + +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 + +Note: replace arm64 with architecture name as required (armhf etc.) + +As superuser: + +- create jenkins user + +`adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins` + +- Add CI server repo to slave apt sources + +`echo "deb `[`http://ci.netsurf-browser.org/debian/`](http://ci.netsurf-browser.org/debian/)` jessie/amd64/" >> /etc/apt/sources.list.d/netsurf-browser.list` + +- update repos + +`apt-get update` + +- install ns-ci-worker package. accept the large package list and the + unsigned package install for gcovr and ns-ci-slave + +`apt-get install ns-ci-worker` + +- edit /etc/default/ns-ci-worker to set the correct url and secret + parameters +- If toolchains are to be built on the node ensure /opt is setup + correctly + +`mkdir -p /opt/netsurf` +`chown jenkins:jenkins /opt/netsurf` + +- become jenkins user + +`su -s/bin/bash - jenkins` + +- create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave12.netsurf-browser.org"` + +- copy .ssh/id\_rsa.pub from slave to jenkins master node and append + to /home/netsurf/.ssh/authorized\_keys + +`scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:ciworker12_id_rsa.pub` + +- exit jenkins user shell +- start CI worker daemon + +`/etc/init.d/ns-ci-worker start` + +Manual CI worker install +------------------------ + +### required packages + +The Netsurf repository has necessary updated packages in it and can be +accessed by doing the following: + +- Add CI server repo to slave apt sources + +`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` jessie/amd64/" >> /etc/apt/sources.list` + +- update repos + +`apt-get update` + +use apt to install these packages: + +`openjdk-7-jre-headless ` +`screen ` +`build-essential` +`ccache` +`clang` +`git` +`pkg-config` +`check` +`doxygen` +`libjson0-dev (from our repo - needs bugfixes `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)`)` +`libexpat1-dev` +`libxml-perl` +`libxml-xpath-perl` +`lcov` +`gcovr (from our repo)` +`gperf` +`flex` +`bison` +`libpng-dev` +`libjpeg-dev` +`libmozjs185-dev` +`libglib2.0-dev` +`libcurl4-openssl-dev` +`liblcms1-dev` +`libxml2-dev` +`librsvg2-dev` +`libmng-dev` +`libgtk2.0-dev` +`libmozjs-dev` + +### config + +- on master jenkins use "manage nodes" to create new node. Ensure + "remote fs root" is set to /home/netsurf/jenkins +- create netsurf user +- as netsurf user: + - wget + - run screen + - create jenkins-slave.sh + +`#!/bin/bash` + +`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp)` -secret 0123456789abcdef01234567890abcdef` + +- - run jenkins-slave.sh + - create new screen tab + - create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` + +- - copy .ssh/id\_rsa.pub from slave to jenkins master node and + append to /home/netsurf/.ssh/authorized\_keys + +`scp ci.netsurf-browser.org:.ssh/id_rsa.pub .id_rsa.pub` +`cat id_rsa.pub >> .ssh/authorized_keys` + +- - copy .ssh/id\_rsa.pub from master node to slave and append to + /home/netsurf/.ssh/authorized\_keys + - create reverse-ssh.sh (change tunnel port number!) + +`#!/bin/sh` + +`ssh -R 22224:localhost:22 netsurf@ci.netsurf-browser.org 'bash -c "while true; do echo .; sleep 60; done"'` + +- - run reverse-ssh.sh + - on the master create a shell script to use the ssh tunnel + connection, thus firewalls etc are moot as long as the slave can + connect to the master + +`ssh netsurf@localhost -p 22223` + +Pbuilder setup +-------------- + +This allows a worker to build Debian packages. The worker should be +installed as a normal CI worker node and then: + +as superuser on node: + +- apt-get install pbuilder +- addgroup pbuilder +- addgroup jenkins pbuilder +- create /etc/sudoers.d/pbuilder + +`jenkins         ALL = NOPASSWD:/usr/sbin/pbuilder` + +- visudo and alter Defaults + +`Defaults        env_reset,env_keep="DIST ARCH"` + +- replace /etc/pbuilderrc + +`# this is your configuration file for pbuilder.` +`# the file in /usr/share/pbuilder/pbuilderrc is the default template.` +`# /etc/pbuilderrc is the one meant for overwriting defaults in` +`# the default template` +`#` +`# read pbuilderrc.5 document for notes on specific options.` +`# List of Debian suites.` +`DEBIAN_SUITES=("sid", "stretch", "jessie", "wheezy", "squeeze")` +`` +`# List of Ubuntu suites.` +`UBUNTU_SUITES=("vivid" "utopic" "trusty" "saucy" "raring" "quantal" "precise" "oneiric" "natty" "lucid" "hardy")` +`` +`# Mirrors to use. Update these to your preferred mirror.` +`DEBIAN_MIRROR="ftp.uk.debian.org"` +`UBUNTU_MIRROR="mirrors.kernel.org"` +`` +`# set a default distribution if none is used.` +`: ${DIST:="$(lsb_release --short --codename)"}` +`` +`# set the architecture to the host architecture if none set.` +`: ${ARCH:="$(dpkg --print-architecture)"}` +`` +`NAME="$DIST"` +`if [ -n "${ARCH}" ]; then` +`    NAME="$NAME-$ARCH"` +`    DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")` +`fi` +`BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"` +`DISTRIBUTION="$DIST"` +`BUILDRESULT="/var/cache/pbuilder/$NAME/result/"` +`APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"` +`BUILDPLACE="/var/cache/pbuilder/build/"` +`` +`if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then` +`    # Debian configuration` +`    MIRRORSITE="http://$DEBIAN_MIRROR/debian/"` +`    COMPONENTS="main contrib non-free"` +`    if $(echo "$STABLE_CODENAME stable" | grep -q $DIST); then` +`        OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS"` +`    fi` +`elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then` +`    # Ubuntu configuration` +`    MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"` +`    COMPONENTS="main restricted universe multiverse"` +`else` +`    echo "Unknown distribution: $DIST"` +`    exit 1` +`fi` + +The architecture is assumed to be the native one from + +`dpkg --print-architecture` + +This can be set by passing ARCH to pbuilder (useful for i386 maybe?) + +for each distribution this node will build for: + +- create pbuilder result directory and set ownership permissions + +`mkdir -p /var/cache/pbuilder/jessie-armhf/result` +`chown root:pbuilder /var/cache/pbuilder/jessie-armhf/result` +`chmod g+w /var/cache/pbuilder/jessie-armhf/result` + +- become jenkins user + +`su -s/bin/bash - jenkins` + +- create pbuilder base for distribution + +`sudo DIST=jessie pbuilder create` + +- if desired additional packages and config can be made to the base + with + +`sudo DIST=jessie pbuilder login --save-after-login` + +distcc worker node +------------------ + +Do a basic OS install but \*not\* a CI worker setup. + +A recommended hostname for distcc worker is something like "cicpu0" this +allows us to use systems as processing node for other purposes than just +distcc in future. See debians +[[https://wiki.debian.org/HowTo/ChangeHostname changing hostname|https///wiki.debian.org/howto/changehostname_changing_hostname]] on how to achive this. + +The Netsurf repository has necessary updated packages in it and can be +accessed by doing the following: + +- Add CI server repo to slave apt sources + +`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` jessie/amd64/" >> /etc/apt/sources.list` + +- update repos + +`apt-get update` + +- use apt to install these packages: + +`build-essential` +`gcc` +`clang` +`distcc` + +- edit /etc/default/distcc + +`STARTDISTCC="true"` +`ALLOWEDNETS="192.168.211.0/24"` +`LISTEN="0.0.0.0"` +`JOBS="8"` + +- start the service + +`service distcc start` + +- ensure the client has hosts set to use the new worker + diff --git a/continuous_integration/debian_wheezy_setup.mdwn b/continuous_integration/debian_wheezy_setup.mdwn new file mode 100644 index 0000000..fcd3a11 --- /dev/null +++ b/continuous_integration/debian_wheezy_setup.mdwn @@ -0,0 +1,161 @@ +[[!meta title="Continuous Integration Debian Wheezy Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-12-20T11:46:57Z"]] + + +[[!toc]] + +## Debian wheezy (7.0) OS install + +Install minimal system from netinst CD (attached when VDS is created on +phoenix) Config options: + +- In the "role" selection select "ssh server" and "system utilities" + only. +- The whole disc default partitioning is fine +- The base user the install insists on creating should be the netsurf + user. +- Boot loader in MBR + +Once installed: + +- install sudo package and add netsurf user to sudo group +- edit /etc/inittab comment pty 3 through 6 and uncomment serial T0 + +## Packaged Setup for Debian wheezy (7.0) + +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 + +`adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins` + +- Add CI server repo to slave apt sources + +`echo "deb `[`http://ci.netsurf-browser.org/debian/`](http://ci.netsurf-browser.org/debian/)` wheezy/amd64/" >> /etc/apt/sources.list.d/netsurf-browser.list` + +- update repos + +`apt-get update` + +- install ns-ci-slave package. accept the large package list and the + unsigned package install for gcovr and ns-ci-slave + +`apt-get install ns-ci-slave` + +- edit /etc/default/ns-ci-slave to set the correct url and secret + parameters +- If toolchains are to be built on the node ensure /opt is setup + correctly + +`mkdir -p /opt/netsurf` +`chown jenkins:jenkins /opt/netsurf` + +- become jenkins user + +`su -s/bin/bash - jenkins` + +- create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave10.netsurf-browser.org"` + +- copy .ssh/id\_rsa.pub from slave to jenkins master node and append + to /home/netsurf/.ssh/authorized\_keys + +`scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:cislave10_id_rsa.pub` + +- exit jenkins user shell +- start slave daemon + +`/etc/init.d/ns-ci-slave start` + +## Manual Setup of Debian wheezy (7.0) + +### required packages + +use apt to install all these. The Netsurf repository has the necessary +updated packages in it and can be accessed by doing the following: + +- Add CI server repo to slave apt sources + +`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` wheezy/amd64/" >> /etc/apt/sources.list` + +- update repos + +`apt-get update` + +`openjdk-7-jre-headless ` +`screen ` +`build-essential` +`ccache` +`clang` +`git` +`pkg-config` +`check` +`doxygen` +`libjson0-dev (from our repo - needs bugfixes `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)`)` +`libexpat1-dev` +`libxml-perl` +`libxml-xpath-perl` +`lcov` +`gcovr (from our repo)` +`gperf` +`flex` +`bison` +`libpng-dev` +`libjpeg-dev` +`libmozjs185-dev` +`libglib2.0-dev` +`libcurl4-openssl-dev` +`liblcms1-dev` +`libxml2-dev` +`librsvg2-dev` +`libmng-dev` +`libgtk2.0-dev` +`libmozjs-dev` + +### config + +- on master jenkins use "manage nodes" to create new node. Ensure + "remote fs root" is set to /home/netsurf/jenkins +- create netsurf user +- as netsurf user: + - wget + - run screen + - create jenkins-slave.sh + +`#!/bin/bash` + +`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp)` -secret 0123456789abcdef01234567890abcdef` + +- - run jenkins-slave.sh + - create new screen tab + - create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` + +- - copy .ssh/id\_rsa.pub from slave to jenkins master node and + append to /home/netsurf/.ssh/authorized\_keys + +`scp ci.netsurf-browser.org:.ssh/id_rsa.pub .id_rsa.pub` +`cat id_rsa.pub >> .ssh/authorized_keys` + +- - copy .ssh/id\_rsa.pub from master node to slave and append to + /home/netsurf/.ssh/authorized\_keys + - create reverse-ssh.sh (change tunnel port number!) + +`#!/bin/sh` + +`ssh -R 22224:localhost:22 netsurf@ci.netsurf-browser.org 'bash -c "while true; do echo .; sleep 60; done"'` + +- - run reverse-ssh.sh + - on the master create a shell script to use the ssh tunnel + connection, thus firewalls etc are moot as long as the slave can + connect to the master + +`ssh netsurf@localhost -p 22223` + diff --git a/continuous_integration/freebsd_setup.mdwn b/continuous_integration/freebsd_setup.mdwn new file mode 100644 index 0000000..d2bde05 --- /dev/null +++ b/continuous_integration/freebsd_setup.mdwn @@ -0,0 +1,67 @@ +[[!meta title="Continuous Integration FreeBSD Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-12-21T02:25:02Z"]] + + +[[!toc]] + +Manual setup of FreeBSD 10.1 +---------------------------- + +Install VM from ISO the usual 1G of RAM and 40G of disc is sufficient. +The install will ask for root password, also create a jenkins user and +give it a password and home dir of /var/lib/jenkins . + +I had lots of issues trying to get ps2 mouse support working, the usb +mouse did work but a CI slave does not need it. + +enable serial console + +`echo 'console="comconsole"' >> /boot/loader.conf` + +ensure pkg-config is replaced by the freebsd equivalent + +`pkg set -o devel/pkg-config:devel/pkgconf` +`pkg install -f devel/pkgconf` + +### required packages + +Ensure all ports were added in the install or mess with ports as needed + +The first run of the pkg command will prompt you to install it. + +`pkg install curl` + +is a good starting place. + +Required packages: + +`git` +`gmake` +`bash` +`ccache` +`flex` +`bison` +`png` +`jpeg` +`wget ` +`gtk2` +`openssl` +`p5-HTML-Parser` +`screen` +`gperf` +`rsync` +`openjdk` + +### 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 + +As superuser on slave: + +- create jenkins user + +`adduser -home /var/lib` + diff --git a/continuous_integration/haiku_slave_setup.mdwn b/continuous_integration/haiku_slave_setup.mdwn new file mode 100644 index 0000000..cde58e8 --- /dev/null +++ b/continuous_integration/haiku_slave_setup.mdwn @@ -0,0 +1,83 @@ +[[!meta title="Continuous Integration Haiku Slave Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-11-21T12:14:02Z"]] + + +[[!toc]] install nightly x86 GCC 2 +Hybrid (http://download.haiku-os.org/nightly-images/x86\_gcc2\_hybrid/) + +once installed + +enable sshd with + +`useradd sshd` + +default user is "user" + +set default password with passwd + +` shutdown -r` + +restart system + +install build deps (possibly some already present) + +`pkgman install git curl_devel libpng_devel jpeg_devel openssl_devel libiconv_devel expat_devel gperf html_parser devel:libiconv_x86 devel:libssl_x86 devel:libexpat_x86 cmd:pkg_config_x86 ccache` + +ssh keys +-------- + +create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` + +copy /boot/home/config/settings/ssh/id\_rsa.pub from slave to jenkins +master node and append to /home/netsurf/.ssh/authorized\_keys + +`scp /boot/home/config/settings/ssh/id_rsa.pub foo@ci.netsurf-browser.org:cislave3.id_rsa.pub` + +copy .ssh/id\_rsa.pub from master node to slave and append to +/boot/home/config/settings/ssh/authorized\_keys + +`scp ci.netsurf-browser.org:.ssh/id_rsa.pub id_rsa.pub` +`cat id_rsa.pub >> /boot/home/config/settings/ssh/authorized_keys` + +jenkins slave setup +------------------- + +install java\_x86 + +`pkgman install openjdk` + +edit shell profile /etc/profile.d/openjdk.sh + +`` JAVA_CONFIG=`which java-config || which java-config-x86` `` +`` JAVA_HOME=`$JAVA_CONFIG -H` `` +`export JAVA_HOME` + +create jenkins-slave.sh + +`#!/bin/bash` + +`# use gcc4 in preference to gcc2 as some libraries use c99 constructs` +`export PATH=/system/bin/x86:$PATH` + +`nohup java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave3/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave3/slave-agent.jnlp)` -secret 1234 >jenkins-slave.output &` + +copy the script to /boot/home/config/settings/boot/launch/ to make it +start on boot + +system can be manually restarted with + +`shutdown -r` + +current issues +-------------- + +As of 24th June 2014 we have some persistant kernel crashes on the +active CI slave. Bugs are: + + + + + diff --git a/continuous_integration/mac_os_x_setup.mdwn b/continuous_integration/mac_os_x_setup.mdwn new file mode 100644 index 0000000..9fa4895 --- /dev/null +++ b/continuous_integration/mac_os_x_setup.mdwn @@ -0,0 +1,9 @@ +[[!meta title="Continuous Integration Mac OS X Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2016-02-06T11:36:48Z"]] + + +[[!toc]] + +1. REDIRECT [[Continuous Integration Mac OS X Snow Leopard Setup|continuous_integration_mac_os_x_snow_leopard_setup]] + diff --git a/continuous_integration/mac_os_x_snow_leopard_setup.mdwn b/continuous_integration/mac_os_x_snow_leopard_setup.mdwn new file mode 100644 index 0000000..5df37ab --- /dev/null +++ b/continuous_integration/mac_os_x_snow_leopard_setup.mdwn @@ -0,0 +1,80 @@ +[[!meta title="Continuous Integration Mac OS X Snow Leopard Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2016-02-06T11:52:56Z"]] + + +[[!toc]] + +Manual Installation +------------------- + +Install snow leopard from master discs + +Create jenkins user + +Install XCode + +Software update to latest version + +Enable remote login (sshd) + +if xcode 4 is installed you need to do: + +`sudo xcodebuild -license` + +Install [[https://code.google.com/p/tunnelblick/ tunnelblick|https///code.google.com/p/tunnelblick/_tunnelblick]] and configure for +auto start openvpn to ci master + +Download Mac Ports: + +`curl -o MacPorts-2.3.1-10.6-SnowLeopard.pkg `[`https://distfiles.macports.org/MacPorts/MacPorts-2.3.1-10.6-SnowLeopard.pkg`](https://distfiles.macports.org/MacPorts/MacPorts-2.3.1-10.6-SnowLeopard.pkg) + +double click on the pkg file to install + +Update ports database ready for use + +`export PATH=/opt/local/bin:/opt/local/sbin:$PATH` +`sudo port -v selfupdate` + +install required packages + +`sudo port install git ccache expat openssl curl libjpeg-turbo libpng p5-html-parser screen bison` + +As jenkins user: + +create jenkins workspace directory + +`mkdir jenkins` + +download slave jar + +`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) + +Add node on jenkins master CI instance + +`Name       cislave7` +`Description    Mac os X build slave` +`# of executors 1` +`Remote FS root /Users/jenkins/jenkins` +`Labels     i686-apple-darwin10` + +take note of secret for use. + +create jenkins slave script + +`cat << EOF > jenkins-slave.sh` +`#!/bin/sh` + +`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp)` -secret 1234` +`EOF` +`chmod a+x jenkins-slave.sh` + +create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` + +copy .ssh/id\_rsa.pub from slave to jenkins master node and append to +/home/netsurf/.ssh/authorized\_keys + +start slave daemon in screen + diff --git a/continuous_integration/mac_os_x_yosemite_setup.mdwn b/continuous_integration/mac_os_x_yosemite_setup.mdwn new file mode 100644 index 0000000..8acf882 --- /dev/null +++ b/continuous_integration/mac_os_x_yosemite_setup.mdwn @@ -0,0 +1,77 @@ +[[!meta title="Continuous Integration Mac OS X Yosemite Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2016-02-06T14:27:38Z"]] + + +[[!toc]] Install yosemite + +set system name in system preferences-\>sharing + +Update system in app store + +Install Xcode from app store + +install xcode commandline tools + +`xcode-select --install` + +accept licence + +`xcodebuild -license` + +install java + +install [[https://www.macports.org/install.php Mac Ports|https///www.macports.org/install.php_mac_ports]] + +Update ports database ready for use + +`sudo port -v selfupdate` +`sudo port upgrade outdated` + +install required packages + +`sudo port install git ccache expat openssl curl libjpeg-turbo libpng p5-html-parser screen bison pkgconfig` + +create jenkins user + +enable ssh login for jenkins user in system +preferences-\>sharing-\>remote login + +Add node on jenkins master CI instance. + +`Name       cislave14` +`Description    Mac os X yosemite build slave` +`# of executors 2` +`Remote FS root /Users/jenkins/jenkins` +`Labels     x86_64-apple-darwin14.5.0` + +take note of secret and slave url for use in next steps. + +As jenkins user: + +create jenkins workspace directory + +`mkdir jenkins` + +download slave jar + +`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) + +create jenkins slave script + +`cat << EOF > jenkins-slave.sh` +`#!/bin/sh` + +`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp)` -secret 1234` +`EOF` +`chmod a+x jenkins-slave.sh` + +create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` + +copy .ssh/id\_rsa.pub from slave to jenkins master node and append to +/home/netsurf/.ssh/authorized\_keys + +start slave daemon in screen + diff --git a/continuous_integration/manual_debian_wheezy_setup.mdwn b/continuous_integration/manual_debian_wheezy_setup.mdwn new file mode 100644 index 0000000..ea2b94e --- /dev/null +++ b/continuous_integration/manual_debian_wheezy_setup.mdwn @@ -0,0 +1,9 @@ +[[!meta title="Continuous Integration Manual Debian Wheezy Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-09-18T15:54:45Z"]] + + +[[!toc]] + +1. REDIRECT [[Continuous Integration Debian Wheezy Setup|continuous_integration/debian_wheezy_setup]] + diff --git a/continuous_integration/manual_haiku_slave_setup.mdwn b/continuous_integration/manual_haiku_slave_setup.mdwn new file mode 100644 index 0000000..0b0a4d4 --- /dev/null +++ b/continuous_integration/manual_haiku_slave_setup.mdwn @@ -0,0 +1,9 @@ +[[!meta title="Continuous Integration Manual Haiku Slave Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-09-18T15:58:26Z"]] + + +[[!toc]] + +1. REDIRECT [[Continuous Integration Haiku Slave Setup|continuous_integration_haiku_slave_setup]] + diff --git a/continuous_integration/manual_openbsd_setup.mdwn b/continuous_integration/manual_openbsd_setup.mdwn new file mode 100644 index 0000000..dbc54be --- /dev/null +++ b/continuous_integration/manual_openbsd_setup.mdwn @@ -0,0 +1,9 @@ +[[!meta title="Continuous Integration Manual OpenBSD Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-09-18T15:56:47Z"]] + + +[[!toc]] + +1. REDIRECT [[Continuous Integration OpenBSD Setup|continuous_integration/openbsd_setup]] + diff --git a/continuous_integration/openbsd_setup.mdwn b/continuous_integration/openbsd_setup.mdwn new file mode 100644 index 0000000..6057e69 --- /dev/null +++ b/continuous_integration/openbsd_setup.mdwn @@ -0,0 +1,127 @@ +[[!meta title="Continuous Integration OpenBSD Setup"]] +[[!meta author="Kyllikki"]] +[[!meta date="2015-05-03T07:53:24Z"]] + + +[[!toc]] + +Manual setup of OpenBSD 5.7 +--------------------------- + +### system prep + +- set serial console up for VM + + +### required packages + +Ensure all ports were added in the install or mess with ports as needed + +`pkg_add -v jdk-1.7.0.71v0 screen-4.0.3p4 ccache gcc-4.9.2p3` +`pkg_add -v rsync-3.1.1-iconv git check doxygen ` +`pkg_add -v gperf flex bison gtk+2 png jpeg spidermonkey-1.9.2.28p1v0` +`pkg_add -v wget curl bash gmake p5-HTML-Parser` + +### config + +Add node on jenkins master CI instance + +`Name       cislave6` +`Description    OpenBSD 5.7 worker` +`# of executors 1` +`Remote FS root /var/lib/jenkins` +`Labels     amd64-unknown-openbsd5.7` + +take note of secret for use. + +add jenkins user + +`mkdir /var/lib` +`adduser -home /var/lib` + +login as jenkins user + +download slave jar + +`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) + +create jenkins slave script + +`cat << EOF > jenkins-slave.sh` +`#!/bin/sh` + +`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave6/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave6/slave-agent.jnlp)` -secret 1234` +`EOF` +`chmod a+x jenkins-slave.sh` + +create ssh keypair (accept defaults - no password) + +`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` + +copy .ssh/id\_rsa.pub from slave to jenkins master node and append to +/home/netsurf/.ssh/authorized\_keys + +start slave daemon in screen + +Manual setup of OpenBSD 5.5 +--------------------------- + +### required packages + +Ensure all ports were added in the install or mess with ports as needed + +`pkg_add -v jdk-1.7.0.21p2v0  screen-4.0.3p4 ccache gcc-4.8.2p2` +`pkg_add -v rsync-3.1.0-iconv git check doxygen ` +`pkg_add -v gperf flex bison gtk+2 png jpeg spidermonkey-1.9.2.28p1v0` +`pkg_add -v wget curl bash gmake p5-HTML-Parser` + +### 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 +- As superuser on slave + - mkdir /var/lib + - create jenkins user + +`adduser -home /var/lib` + +Manual setup of OpenBSD 5.4 +--------------------------- + +### required packages + +Ensure all ports were added in the install or mess with ports as needed + +`jdk-1.7.0.21v0` +`screen-4.0.3p3` +`ccache` +`gcc-4.8.1p2` +`rsync-3.0.9p3-iconv` +`git` +`check` +`doxygen` +`gperf` +`flex` +`bison` +`gtk+2` +`png` +`jpeg` +`spidermonkey-1.9.2.28p0v0` +`wget` +`curl` +`bash` +`gmake` +`p5-HTML-Parser` + +### 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 +- As superuser on slave + - mkdir /var/lib + - create jenkins user + +`adduser -home /var/lib` + diff --git a/continuous_integration/setup_haiku_slave.mdwn b/continuous_integration/setup_haiku_slave.mdwn new file mode 100644 index 0000000..35b4348 --- /dev/null +++ b/continuous_integration/setup_haiku_slave.mdwn @@ -0,0 +1,7 @@ +[[!meta title="Continuous Integration Setup Haiku Slave"]] +[[!meta author="Kyllikki"]] +[[!meta date="2014-06-20T15:03:32Z"]] + + +[[!toc]] **Page was empty** + diff --git a/continuous_integration_debian_jessie_setup.mdwn b/continuous_integration_debian_jessie_setup.mdwn deleted file mode 100644 index fb794a8..0000000 --- a/continuous_integration_debian_jessie_setup.mdwn +++ /dev/null @@ -1,421 +0,0 @@ -[[!meta title="Continuous Integration Debian Jessie Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2016-07-06T12:46:14Z"]] - - -[[!toc]] - -Debian jessie (8.x) OS install ------------------------------- - -### amd64 VDS install from media - -[[Virtual server setup|virtual_host_server]] - -Install minimal system from netinst CD (attached when VDS is created on -phoenix) Config options: - -- In the "role" selection select "ssh server" and "system utilities" - only. -- The whole disc default partitioning is fine -- The base user the install insists on creating should be the netsurf - user. -- Boot loader in MBR - -Once installed: - -- install sudo package and add netsurf user to sudo group -- edit /etc/default/grub - -`GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"` - -`# update-grub2` - -### arm64 VDS install - -[[ARM64 virtual server setup|virtual_host_server_arm64]] - -Once installed: - -- create netsurf user -- install sudo package and add netsurf user to sudo group -- edit /etc/inittab comment pty 3 through 6 and uncomment serial T0 -- enable backports - -`echo "deb `[`http://http.debian.net/debian`](http://http.debian.net/debian)` jessie-backports main" > /etc/apt/sources.list.d/backports.list` -`apt-get update` - -- install updated kernel - -`apt-get install linux-image-4.3.0-0.bpo.1-arm64` - -### Banana Pi - -This system is a dual core ARMv7 allwinner using the armhf ABI - -Used the install SD media from -[[http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/ Igor Pecovnik|http///www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/_igor_pecovnik]] - -- unzip and write raw file to full size SD card. - -Once installed: - -- first login as root:1234 which will need to be immediately changed -- use the nand-sata-install script and moved the install to sata disc. - The drive needs to be a clean drive with a recognised partition - table (DOS or GPT) and a single partition where the OS will be - installed. -- edit /etc/init.d/armhwinfo to remove the toilet dynamic MOTD banner -- (re)move /etc/bash.bashrc.custom as it issues a lot of unnecessary - commands -- adduser netsurf -- change /etc/apt/sources.list to point at a local mirror -- apt-get update -- apt-get upgrade -- install sudo package and add netsurf user to sudo group - -### Raspberry Pi 2 - -This system is a quad core ARMv7 Broadcom using the armhf ABI - -Used install media from [[http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/ Sjored|http///sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/_sjored]] - -- unpack onto micro SD card with bmap-tools - -`On any debian-based linux type "sudo apt-get install bmap-tools" and install it.` -`Then type "sudo bmaptool copy --nobmap 'yourlocation/jessie-rpi2.img' /dev/sdx" (Change yourlocation to the location of the .img file and sdx for the letter where the SD is mounted, if you don't know it type "sudo fdisk -l" and look for it).` - -Once installed: - -- first login as root:debian which will need to be immediately changed -- Prevent package FLASH-KERNEL UPDATING FROM OFFICIAL REPO WITH APT - PINNING - -`'touch /etc/apt/preferences.d/flash-kernel' create a new file` -`'vi /etc/apt/preferences.d/flash-kernel' edit it an add the following lines to it:` -`Package: flash-kernel` -`Pin: origin repositories.collabora.co.uk` -`Pin-Priority: 1000` -`'apt-cache policy flash-kernel' check if the package is pinned` - -- change /etc/apt/sources.list to point at a local mirror -- apt-get update -- apt-get upgrade -- adduser netsurf -- install sudo package and add netsurf user to sudo group - -### Orange Pi PC - -This system is a quad core ARMv7 allwinner H3 using the armhf ABI - -Used "mini" install media from -[[http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342 loboris|http///www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342_loboris]] - -- unpack image and write to micro SD card and configure as per loboris - instructions, careful installation steps are not immediately obvious - -Once installed: - -- first login as orangepi:orangepi which will need to be immediately - changed - -`* superuser available via sudo -i` - -- change /etc/apt/sources.list to point at a local mirror -- apt-get update -- apt-get upgrade -- alter orangepi user to netsurf by editing - -`/etc/group (dont forget to replace orangepi on the sudo group)` -`/etc/passwd` -`/etc/shadow` -`mv /home/orangepi /home/netsurf` - -Packaged CI worker install --------------------------- - -Do a base OS install - -The recommended hostname for CI workers is "ciworker13" this allows us -to clearly identify CI worker nodes. Note historically we have used -"cislave1" which has been objected to by several users. See -[[https://wiki.debian.org/HowTo/ChangeHostname changing hostname|https///wiki.debian.org/howto/changehostname_changing_hostname]] on how to achive this. - -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 - -Note: replace arm64 with architecture name as required (armhf etc.) - -As superuser: - -- create jenkins user - -`adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins` - -- Add CI server repo to slave apt sources - -`echo "deb `[`http://ci.netsurf-browser.org/debian/`](http://ci.netsurf-browser.org/debian/)` jessie/amd64/" >> /etc/apt/sources.list.d/netsurf-browser.list` - -- update repos - -`apt-get update` - -- install ns-ci-worker package. accept the large package list and the - unsigned package install for gcovr and ns-ci-slave - -`apt-get install ns-ci-worker` - -- edit /etc/default/ns-ci-worker to set the correct url and secret - parameters -- If toolchains are to be built on the node ensure /opt is setup - correctly - -`mkdir -p /opt/netsurf` -`chown jenkins:jenkins /opt/netsurf` - -- become jenkins user - -`su -s/bin/bash - jenkins` - -- create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave12.netsurf-browser.org"` - -- copy .ssh/id\_rsa.pub from slave to jenkins master node and append - to /home/netsurf/.ssh/authorized\_keys - -`scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:ciworker12_id_rsa.pub` - -- exit jenkins user shell -- start CI worker daemon - -`/etc/init.d/ns-ci-worker start` - -Manual CI worker install ------------------------- - -### required packages - -The Netsurf repository has necessary updated packages in it and can be -accessed by doing the following: - -- Add CI server repo to slave apt sources - -`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` jessie/amd64/" >> /etc/apt/sources.list` - -- update repos - -`apt-get update` - -use apt to install these packages: - -`openjdk-7-jre-headless ` -`screen ` -`build-essential` -`ccache` -`clang` -`git` -`pkg-config` -`check` -`doxygen` -`libjson0-dev (from our repo - needs bugfixes `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)`)` -`libexpat1-dev` -`libxml-perl` -`libxml-xpath-perl` -`lcov` -`gcovr (from our repo)` -`gperf` -`flex` -`bison` -`libpng-dev` -`libjpeg-dev` -`libmozjs185-dev` -`libglib2.0-dev` -`libcurl4-openssl-dev` -`liblcms1-dev` -`libxml2-dev` -`librsvg2-dev` -`libmng-dev` -`libgtk2.0-dev` -`libmozjs-dev` - -### config - -- on master jenkins use "manage nodes" to create new node. Ensure - "remote fs root" is set to /home/netsurf/jenkins -- create netsurf user -- as netsurf user: - - wget - - run screen - - create jenkins-slave.sh - -`#!/bin/bash` - -`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp)` -secret 0123456789abcdef01234567890abcdef` - -- - run jenkins-slave.sh - - create new screen tab - - create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` - -- - copy .ssh/id\_rsa.pub from slave to jenkins master node and - append to /home/netsurf/.ssh/authorized\_keys - -`scp ci.netsurf-browser.org:.ssh/id_rsa.pub .id_rsa.pub` -`cat id_rsa.pub >> .ssh/authorized_keys` - -- - copy .ssh/id\_rsa.pub from master node to slave and append to - /home/netsurf/.ssh/authorized\_keys - - create reverse-ssh.sh (change tunnel port number!) - -`#!/bin/sh` - -`ssh -R 22224:localhost:22 netsurf@ci.netsurf-browser.org 'bash -c "while true; do echo .; sleep 60; done"'` - -- - run reverse-ssh.sh - - on the master create a shell script to use the ssh tunnel - connection, thus firewalls etc are moot as long as the slave can - connect to the master - -`ssh netsurf@localhost -p 22223` - -Pbuilder setup --------------- - -This allows a worker to build Debian packages. The worker should be -installed as a normal CI worker node and then: - -as superuser on node: - -- apt-get install pbuilder -- addgroup pbuilder -- addgroup jenkins pbuilder -- create /etc/sudoers.d/pbuilder - -`jenkins         ALL = NOPASSWD:/usr/sbin/pbuilder` - -- visudo and alter Defaults - -`Defaults        env_reset,env_keep="DIST ARCH"` - -- replace /etc/pbuilderrc - -`# this is your configuration file for pbuilder.` -`# the file in /usr/share/pbuilder/pbuilderrc is the default template.` -`# /etc/pbuilderrc is the one meant for overwriting defaults in` -`# the default template` -`#` -`# read pbuilderrc.5 document for notes on specific options.` -`# List of Debian suites.` -`DEBIAN_SUITES=("sid", "stretch", "jessie", "wheezy", "squeeze")` -`` -`# List of Ubuntu suites.` -`UBUNTU_SUITES=("vivid" "utopic" "trusty" "saucy" "raring" "quantal" "precise" "oneiric" "natty" "lucid" "hardy")` -`` -`# Mirrors to use. Update these to your preferred mirror.` -`DEBIAN_MIRROR="ftp.uk.debian.org"` -`UBUNTU_MIRROR="mirrors.kernel.org"` -`` -`# set a default distribution if none is used.` -`: ${DIST:="$(lsb_release --short --codename)"}` -`` -`# set the architecture to the host architecture if none set.` -`: ${ARCH:="$(dpkg --print-architecture)"}` -`` -`NAME="$DIST"` -`if [ -n "${ARCH}" ]; then` -`    NAME="$NAME-$ARCH"` -`    DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")` -`fi` -`BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"` -`DISTRIBUTION="$DIST"` -`BUILDRESULT="/var/cache/pbuilder/$NAME/result/"` -`APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"` -`BUILDPLACE="/var/cache/pbuilder/build/"` -`` -`if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then` -`    # Debian configuration` -`    MIRRORSITE="http://$DEBIAN_MIRROR/debian/"` -`    COMPONENTS="main contrib non-free"` -`    if $(echo "$STABLE_CODENAME stable" | grep -q $DIST); then` -`        OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS"` -`    fi` -`elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then` -`    # Ubuntu configuration` -`    MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"` -`    COMPONENTS="main restricted universe multiverse"` -`else` -`    echo "Unknown distribution: $DIST"` -`    exit 1` -`fi` - -The architecture is assumed to be the native one from - -`dpkg --print-architecture` - -This can be set by passing ARCH to pbuilder (useful for i386 maybe?) - -for each distribution this node will build for: - -- create pbuilder result directory and set ownership permissions - -`mkdir -p /var/cache/pbuilder/jessie-armhf/result` -`chown root:pbuilder /var/cache/pbuilder/jessie-armhf/result` -`chmod g+w /var/cache/pbuilder/jessie-armhf/result` - -- become jenkins user - -`su -s/bin/bash - jenkins` - -- create pbuilder base for distribution - -`sudo DIST=jessie pbuilder create` - -- if desired additional packages and config can be made to the base - with - -`sudo DIST=jessie pbuilder login --save-after-login` - -distcc worker node ------------------- - -Do a basic OS install but \*not\* a CI worker setup. - -A recommended hostname for distcc worker is something like "cicpu0" this -allows us to use systems as processing node for other purposes than just -distcc in future. See debians -[[https://wiki.debian.org/HowTo/ChangeHostname changing hostname|https///wiki.debian.org/howto/changehostname_changing_hostname]] on how to achive this. - -The Netsurf repository has necessary updated packages in it and can be -accessed by doing the following: - -- Add CI server repo to slave apt sources - -`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` jessie/amd64/" >> /etc/apt/sources.list` - -- update repos - -`apt-get update` - -- use apt to install these packages: - -`build-essential` -`gcc` -`clang` -`distcc` - -- edit /etc/default/distcc - -`STARTDISTCC="true"` -`ALLOWEDNETS="192.168.211.0/24"` -`LISTEN="0.0.0.0"` -`JOBS="8"` - -- start the service - -`service distcc start` - -- ensure the client has hosts set to use the new worker - diff --git a/continuous_integration_debian_wheezy_setup.mdwn b/continuous_integration_debian_wheezy_setup.mdwn deleted file mode 100644 index 9127b32..0000000 --- a/continuous_integration_debian_wheezy_setup.mdwn +++ /dev/null @@ -1,164 +0,0 @@ -[[!meta title="Continuous Integration Debian Wheezy Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-12-20T11:46:57Z"]] - - -[[!toc]] - -Debian wheezy (7.0) OS install ------------------------------- - -Install minimal system from netinst CD (attached when VDS is created on -phoenix) Config options: - -- In the "role" selection select "ssh server" and "system utilities" - only. -- The whole disc default partitioning is fine -- The base user the install insists on creating should be the netsurf - user. -- Boot loader in MBR - -Once installed: - -- install sudo package and add netsurf user to sudo group -- edit /etc/inittab comment pty 3 through 6 and uncomment serial T0 - -Packaged Setup for Debian wheezy (7.0) --------------------------------------- - -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 - -`adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins` - -- Add CI server repo to slave apt sources - -`echo "deb `[`http://ci.netsurf-browser.org/debian/`](http://ci.netsurf-browser.org/debian/)` wheezy/amd64/" >> /etc/apt/sources.list.d/netsurf-browser.list` - -- update repos - -`apt-get update` - -- install ns-ci-slave package. accept the large package list and the - unsigned package install for gcovr and ns-ci-slave - -`apt-get install ns-ci-slave` - -- edit /etc/default/ns-ci-slave to set the correct url and secret - parameters -- If toolchains are to be built on the node ensure /opt is setup - correctly - -`mkdir -p /opt/netsurf` -`chown jenkins:jenkins /opt/netsurf` - -- become jenkins user - -`su -s/bin/bash - jenkins` - -- create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave10.netsurf-browser.org"` - -- copy .ssh/id\_rsa.pub from slave to jenkins master node and append - to /home/netsurf/.ssh/authorized\_keys - -`scp /home/jenkins/.ssh/id_rsa.pub netsurf@ci.netsurf-browser.org:cislave10_id_rsa.pub` - -- exit jenkins user shell -- start slave daemon - -`/etc/init.d/ns-ci-slave start` - -Manual Setup of Debian wheezy (7.0) ------------------------------------ - -### required packages - -use apt to install all these. The Netsurf repository has the necessary -updated packages in it and can be accessed by doing the following: - -- Add CI server repo to slave apt sources - -`echo "deb `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)` wheezy/amd64/" >> /etc/apt/sources.list` - -- update repos - -`apt-get update` - -`openjdk-7-jre-headless ` -`screen ` -`build-essential` -`ccache` -`clang` -`git` -`pkg-config` -`check` -`doxygen` -`libjson0-dev (from our repo - needs bugfixes `[`http://ci.netsurf-browser.org/builds/debian/`](http://ci.netsurf-browser.org/builds/debian/)`)` -`libexpat1-dev` -`libxml-perl` -`libxml-xpath-perl` -`lcov` -`gcovr (from our repo)` -`gperf` -`flex` -`bison` -`libpng-dev` -`libjpeg-dev` -`libmozjs185-dev` -`libglib2.0-dev` -`libcurl4-openssl-dev` -`liblcms1-dev` -`libxml2-dev` -`librsvg2-dev` -`libmng-dev` -`libgtk2.0-dev` -`libmozjs-dev` - -### config - -- on master jenkins use "manage nodes" to create new node. Ensure - "remote fs root" is set to /home/netsurf/jenkins -- create netsurf user -- as netsurf user: - - wget - - run screen - - create jenkins-slave.sh - -`#!/bin/bash` - -`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/chimera/slave-agent.jnlp)` -secret 0123456789abcdef01234567890abcdef` - -- - run jenkins-slave.sh - - create new screen tab - - create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` - -- - copy .ssh/id\_rsa.pub from slave to jenkins master node and - append to /home/netsurf/.ssh/authorized\_keys - -`scp ci.netsurf-browser.org:.ssh/id_rsa.pub .id_rsa.pub` -`cat id_rsa.pub >> .ssh/authorized_keys` - -- - copy .ssh/id\_rsa.pub from master node to slave and append to - /home/netsurf/.ssh/authorized\_keys - - create reverse-ssh.sh (change tunnel port number!) - -`#!/bin/sh` - -`ssh -R 22224:localhost:22 netsurf@ci.netsurf-browser.org 'bash -c "while true; do echo .; sleep 60; done"'` - -- - run reverse-ssh.sh - - on the master create a shell script to use the ssh tunnel - connection, thus firewalls etc are moot as long as the slave can - connect to the master - -`ssh netsurf@localhost -p 22223` - diff --git a/continuous_integration_freebsd_setup.mdwn b/continuous_integration_freebsd_setup.mdwn deleted file mode 100644 index d2bde05..0000000 --- a/continuous_integration_freebsd_setup.mdwn +++ /dev/null @@ -1,67 +0,0 @@ -[[!meta title="Continuous Integration FreeBSD Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-12-21T02:25:02Z"]] - - -[[!toc]] - -Manual setup of FreeBSD 10.1 ----------------------------- - -Install VM from ISO the usual 1G of RAM and 40G of disc is sufficient. -The install will ask for root password, also create a jenkins user and -give it a password and home dir of /var/lib/jenkins . - -I had lots of issues trying to get ps2 mouse support working, the usb -mouse did work but a CI slave does not need it. - -enable serial console - -`echo 'console="comconsole"' >> /boot/loader.conf` - -ensure pkg-config is replaced by the freebsd equivalent - -`pkg set -o devel/pkg-config:devel/pkgconf` -`pkg install -f devel/pkgconf` - -### required packages - -Ensure all ports were added in the install or mess with ports as needed - -The first run of the pkg command will prompt you to install it. - -`pkg install curl` - -is a good starting place. - -Required packages: - -`git` -`gmake` -`bash` -`ccache` -`flex` -`bison` -`png` -`jpeg` -`wget ` -`gtk2` -`openssl` -`p5-HTML-Parser` -`screen` -`gperf` -`rsync` -`openjdk` - -### 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 - -As superuser on slave: - -- create jenkins user - -`adduser -home /var/lib` - diff --git a/continuous_integration_haiku_slave_setup.mdwn b/continuous_integration_haiku_slave_setup.mdwn deleted file mode 100644 index cde58e8..0000000 --- a/continuous_integration_haiku_slave_setup.mdwn +++ /dev/null @@ -1,83 +0,0 @@ -[[!meta title="Continuous Integration Haiku Slave Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-11-21T12:14:02Z"]] - - -[[!toc]] install nightly x86 GCC 2 -Hybrid (http://download.haiku-os.org/nightly-images/x86\_gcc2\_hybrid/) - -once installed - -enable sshd with - -`useradd sshd` - -default user is "user" - -set default password with passwd - -` shutdown -r` - -restart system - -install build deps (possibly some already present) - -`pkgman install git curl_devel libpng_devel jpeg_devel openssl_devel libiconv_devel expat_devel gperf html_parser devel:libiconv_x86 devel:libssl_x86 devel:libexpat_x86 cmd:pkg_config_x86 ccache` - -ssh keys --------- - -create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave0.netsurf-browser.org"` - -copy /boot/home/config/settings/ssh/id\_rsa.pub from slave to jenkins -master node and append to /home/netsurf/.ssh/authorized\_keys - -`scp /boot/home/config/settings/ssh/id_rsa.pub foo@ci.netsurf-browser.org:cislave3.id_rsa.pub` - -copy .ssh/id\_rsa.pub from master node to slave and append to -/boot/home/config/settings/ssh/authorized\_keys - -`scp ci.netsurf-browser.org:.ssh/id_rsa.pub id_rsa.pub` -`cat id_rsa.pub >> /boot/home/config/settings/ssh/authorized_keys` - -jenkins slave setup -------------------- - -install java\_x86 - -`pkgman install openjdk` - -edit shell profile /etc/profile.d/openjdk.sh - -`` JAVA_CONFIG=`which java-config || which java-config-x86` `` -`` JAVA_HOME=`$JAVA_CONFIG -H` `` -`export JAVA_HOME` - -create jenkins-slave.sh - -`#!/bin/bash` - -`# use gcc4 in preference to gcc2 as some libraries use c99 constructs` -`export PATH=/system/bin/x86:$PATH` - -`nohup java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave3/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave3/slave-agent.jnlp)` -secret 1234 >jenkins-slave.output &` - -copy the script to /boot/home/config/settings/boot/launch/ to make it -start on boot - -system can be manually restarted with - -`shutdown -r` - -current issues --------------- - -As of 24th June 2014 we have some persistant kernel crashes on the -active CI slave. Bugs are: - - - - - diff --git a/continuous_integration_mac_os_x_setup.mdwn b/continuous_integration_mac_os_x_setup.mdwn deleted file mode 100644 index 9fa4895..0000000 --- a/continuous_integration_mac_os_x_setup.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -[[!meta title="Continuous Integration Mac OS X Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2016-02-06T11:36:48Z"]] - - -[[!toc]] - -1. REDIRECT [[Continuous Integration Mac OS X Snow Leopard Setup|continuous_integration_mac_os_x_snow_leopard_setup]] - diff --git a/continuous_integration_mac_os_x_snow_leopard_setup.mdwn b/continuous_integration_mac_os_x_snow_leopard_setup.mdwn deleted file mode 100644 index 5df37ab..0000000 --- a/continuous_integration_mac_os_x_snow_leopard_setup.mdwn +++ /dev/null @@ -1,80 +0,0 @@ -[[!meta title="Continuous Integration Mac OS X Snow Leopard Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2016-02-06T11:52:56Z"]] - - -[[!toc]] - -Manual Installation -------------------- - -Install snow leopard from master discs - -Create jenkins user - -Install XCode - -Software update to latest version - -Enable remote login (sshd) - -if xcode 4 is installed you need to do: - -`sudo xcodebuild -license` - -Install [[https://code.google.com/p/tunnelblick/ tunnelblick|https///code.google.com/p/tunnelblick/_tunnelblick]] and configure for -auto start openvpn to ci master - -Download Mac Ports: - -`curl -o MacPorts-2.3.1-10.6-SnowLeopard.pkg `[`https://distfiles.macports.org/MacPorts/MacPorts-2.3.1-10.6-SnowLeopard.pkg`](https://distfiles.macports.org/MacPorts/MacPorts-2.3.1-10.6-SnowLeopard.pkg) - -double click on the pkg file to install - -Update ports database ready for use - -`export PATH=/opt/local/bin:/opt/local/sbin:$PATH` -`sudo port -v selfupdate` - -install required packages - -`sudo port install git ccache expat openssl curl libjpeg-turbo libpng p5-html-parser screen bison` - -As jenkins user: - -create jenkins workspace directory - -`mkdir jenkins` - -download slave jar - -`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) - -Add node on jenkins master CI instance - -`Name       cislave7` -`Description    Mac os X build slave` -`# of executors 1` -`Remote FS root /Users/jenkins/jenkins` -`Labels     i686-apple-darwin10` - -take note of secret for use. - -create jenkins slave script - -`cat << EOF > jenkins-slave.sh` -`#!/bin/sh` - -`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp)` -secret 1234` -`EOF` -`chmod a+x jenkins-slave.sh` - -create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` - -copy .ssh/id\_rsa.pub from slave to jenkins master node and append to -/home/netsurf/.ssh/authorized\_keys - -start slave daemon in screen - diff --git a/continuous_integration_mac_os_x_yosemite_setup.mdwn b/continuous_integration_mac_os_x_yosemite_setup.mdwn deleted file mode 100644 index 8acf882..0000000 --- a/continuous_integration_mac_os_x_yosemite_setup.mdwn +++ /dev/null @@ -1,77 +0,0 @@ -[[!meta title="Continuous Integration Mac OS X Yosemite Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2016-02-06T14:27:38Z"]] - - -[[!toc]] Install yosemite - -set system name in system preferences-\>sharing - -Update system in app store - -Install Xcode from app store - -install xcode commandline tools - -`xcode-select --install` - -accept licence - -`xcodebuild -license` - -install java - -install [[https://www.macports.org/install.php Mac Ports|https///www.macports.org/install.php_mac_ports]] - -Update ports database ready for use - -`sudo port -v selfupdate` -`sudo port upgrade outdated` - -install required packages - -`sudo port install git ccache expat openssl curl libjpeg-turbo libpng p5-html-parser screen bison pkgconfig` - -create jenkins user - -enable ssh login for jenkins user in system -preferences-\>sharing-\>remote login - -Add node on jenkins master CI instance. - -`Name       cislave14` -`Description    Mac os X yosemite build slave` -`# of executors 2` -`Remote FS root /Users/jenkins/jenkins` -`Labels     x86_64-apple-darwin14.5.0` - -take note of secret and slave url for use in next steps. - -As jenkins user: - -create jenkins workspace directory - -`mkdir jenkins` - -download slave jar - -`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) - -create jenkins slave script - -`cat << EOF > jenkins-slave.sh` -`#!/bin/sh` - -`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave7/slave-agent.jnlp)` -secret 1234` -`EOF` -`chmod a+x jenkins-slave.sh` - -create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` - -copy .ssh/id\_rsa.pub from slave to jenkins master node and append to -/home/netsurf/.ssh/authorized\_keys - -start slave daemon in screen - diff --git a/continuous_integration_manual_debian_wheezy_setup.mdwn b/continuous_integration_manual_debian_wheezy_setup.mdwn deleted file mode 100644 index cbea4da..0000000 --- a/continuous_integration_manual_debian_wheezy_setup.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -[[!meta title="Continuous Integration Manual Debian Wheezy Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-09-18T15:54:45Z"]] - - -[[!toc]] - -1. REDIRECT [[Continuous Integration Debian Wheezy Setup|continuous_integration_debian_wheezy_setup]] - diff --git a/continuous_integration_manual_haiku_slave_setup.mdwn b/continuous_integration_manual_haiku_slave_setup.mdwn deleted file mode 100644 index 0b0a4d4..0000000 --- a/continuous_integration_manual_haiku_slave_setup.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -[[!meta title="Continuous Integration Manual Haiku Slave Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-09-18T15:58:26Z"]] - - -[[!toc]] - -1. REDIRECT [[Continuous Integration Haiku Slave Setup|continuous_integration_haiku_slave_setup]] - diff --git a/continuous_integration_manual_openbsd_setup.mdwn b/continuous_integration_manual_openbsd_setup.mdwn deleted file mode 100644 index 8a83191..0000000 --- a/continuous_integration_manual_openbsd_setup.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -[[!meta title="Continuous Integration Manual OpenBSD Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-09-18T15:56:47Z"]] - - -[[!toc]] - -1. REDIRECT [[Continuous Integration OpenBSD Setup|continuous_integration_openbsd_setup]] - diff --git a/continuous_integration_openbsd_setup.mdwn b/continuous_integration_openbsd_setup.mdwn deleted file mode 100644 index 6057e69..0000000 --- a/continuous_integration_openbsd_setup.mdwn +++ /dev/null @@ -1,127 +0,0 @@ -[[!meta title="Continuous Integration OpenBSD Setup"]] -[[!meta author="Kyllikki"]] -[[!meta date="2015-05-03T07:53:24Z"]] - - -[[!toc]] - -Manual setup of OpenBSD 5.7 ---------------------------- - -### system prep - -- set serial console up for VM - - -### required packages - -Ensure all ports were added in the install or mess with ports as needed - -`pkg_add -v jdk-1.7.0.71v0 screen-4.0.3p4 ccache gcc-4.9.2p3` -`pkg_add -v rsync-3.1.1-iconv git check doxygen ` -`pkg_add -v gperf flex bison gtk+2 png jpeg spidermonkey-1.9.2.28p1v0` -`pkg_add -v wget curl bash gmake p5-HTML-Parser` - -### config - -Add node on jenkins master CI instance - -`Name       cislave6` -`Description    OpenBSD 5.7 worker` -`# of executors 1` -`Remote FS root /var/lib/jenkins` -`Labels     amd64-unknown-openbsd5.7` - -take note of secret for use. - -add jenkins user - -`mkdir /var/lib` -`adduser -home /var/lib` - -login as jenkins user - -download slave jar - -`curl -o slave.jar `[`http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar`](http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar) - -create jenkins slave script - -`cat << EOF > jenkins-slave.sh` -`#!/bin/sh` - -`java -Djava.awt.headless=true -jar slave.jar -jnlpUrl `[`http://ci.netsurf-browser.org/jenkins/computer/cislave6/slave-agent.jnlp`](http://ci.netsurf-browser.org/jenkins/computer/cislave6/slave-agent.jnlp)` -secret 1234` -`EOF` -`chmod a+x jenkins-slave.sh` - -create ssh keypair (accept defaults - no password) - -`ssh-keygen -t rsa -C "netsurf@cislave8.netsurf-browser.org"` - -copy .ssh/id\_rsa.pub from slave to jenkins master node and append to -/home/netsurf/.ssh/authorized\_keys - -start slave daemon in screen - -Manual setup of OpenBSD 5.5 ---------------------------- - -### required packages - -Ensure all ports were added in the install or mess with ports as needed - -`pkg_add -v jdk-1.7.0.21p2v0  screen-4.0.3p4 ccache gcc-4.8.2p2` -`pkg_add -v rsync-3.1.0-iconv git check doxygen ` -`pkg_add -v gperf flex bison gtk+2 png jpeg spidermonkey-1.9.2.28p1v0` -`pkg_add -v wget curl bash gmake p5-HTML-Parser` - -### 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 -- As superuser on slave - - mkdir /var/lib - - create jenkins user - -`adduser -home /var/lib` - -Manual setup of OpenBSD 5.4 ---------------------------- - -### required packages - -Ensure all ports were added in the install or mess with ports as needed - -`jdk-1.7.0.21v0` -`screen-4.0.3p3` -`ccache` -`gcc-4.8.1p2` -`rsync-3.0.9p3-iconv` -`git` -`check` -`doxygen` -`gperf` -`flex` -`bison` -`gtk+2` -`png` -`jpeg` -`spidermonkey-1.9.2.28p0v0` -`wget` -`curl` -`bash` -`gmake` -`p5-HTML-Parser` - -### 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 -- As superuser on slave - - mkdir /var/lib - - create jenkins user - -`adduser -home /var/lib` - diff --git a/continuous_integration_setup_haiku_slave.mdwn b/continuous_integration_setup_haiku_slave.mdwn deleted file mode 100644 index 35b4348..0000000 --- a/continuous_integration_setup_haiku_slave.mdwn +++ /dev/null @@ -1,7 +0,0 @@ -[[!meta title="Continuous Integration Setup Haiku Slave"]] -[[!meta author="Kyllikki"]] -[[!meta date="2014-06-20T15:03:32Z"]] - - -[[!toc]] **Page was empty** - -- cgit v1.2.3