summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--continuous_integration/fedora_25_setup.mdwn122
1 files changed, 122 insertions, 0 deletions
diff --git a/continuous_integration/fedora_25_setup.mdwn b/continuous_integration/fedora_25_setup.mdwn
new file mode 100644
index 0000000..1ac1786
--- /dev/null
+++ b/continuous_integration/fedora_25_setup.mdwn
@@ -0,0 +1,122 @@
+[[!meta title="Continuous Integration worker Fedora 25 Setup"]]
+[[!meta author="Kyllikki"]]
+[[!meta date="2017-05-28T12:46:14Z"]]
+
+
+[[!toc]]
+
+## Fedora 25 OS install
+
+### amd64 VDS install from media
+
+[[Virtual server setup|virtual_host_server]]
+
+Run through the base install steps ensuring to create the netsurf user.
+
+
+## Manual CI worker install
+
+
+### required packages
+
+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
+
+For gtk2 builds
+
+ dnf install gtk2-devel
+
+for gtk3 builds
+
+ dnf install gtk3-devel
+
+Development tool group using
+
+ dnf group install 'Development Tools'
+
+
+### 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:
+
+- create jenkins user
+
+ adduser --system --group --home /var/lib/jenkins/ --disabled-login jenkins
+
+- ensure /opt is setup correctly to allow toolchains to be built on the node
+
+ 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@nsciworker17.netsurf-browser.org"
+
+- 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
+
+- get jenkins slave jar
+
+ wget http://ci.netsurf-browser.org/jenkins/jnlpJars/slave.jar
+
+- exit jenkins user shell
+
+- create ns-ci-worker.service file
+
+ [Unit]
+ Description=Netsurf CI worker
+ Documentation=http://wiki.netsurf-browser.org/continuous_integration/
+ Requires=network.target
+ After=multi-user.target
+
+ [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
+ Restart=always
+ RestartSec=60
+ StartLimitInterval=0
+ User=jenkins
+
+ [Install]
+ WantedBy=multi-user.target
+
+
+- install and start new service
+
+ install -D -m 644 ns-ci-worker.service /usr/lib/systemd/system/ns-ci-worker.service
+ systemctl daemon-reload
+ systemctl start ns-ci-worker
+ systemctl enable ns-ci-worker
+
+
+
+
+
+
+
+
+
+- create jenkins-slave.sh ensuring the secret key is correct
+
+ #!/bin/bash
+
+
+
+- run screen
+
+- run jenkins-slave.sh
+
+- detach screen
+
+