Skip to content

Commit 496acc0

Browse files
committed
rearrange
1 parent aeaf035 commit 496acc0

File tree

3 files changed

+75
-90
lines changed

3 files changed

+75
-90
lines changed

doc/Systems.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
systems/*
99
```
1010

11+
```{seealso}
12+
- [Jenkins Build Server setup](/processes/continuous_integration/Adding-a-new-Windows-machine-to-Jenkins)
13+
```
14+
1115
## Looking up Dell service-tag numbers
1216

1317
You can check specifications of Dell machines by getting their service tag, using the following command in `powershell`:

doc/processes/continuous_integration/Adding-a-new-Windows-machine-to-Jenkins.md

Lines changed: 71 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,87 @@
1-
# Adding a new Windows machine to Jenkins
1+
# Adding Jenkins nodes
22

33
These are instructions for adding a new Windows machine as a node to be used by Jenkins.
44

5-
### Initial Preparation
5+
## Hardware Prerequisites
6+
7+
A useful build server will need roughly the following specifications:
8+
- Processor:
9+
- Not a virtual machine (we have tried VMs in the past, but the performance penalty is too high for a
10+
build server)
11+
- Semi-modern processor. Most of our builds are _primarily_ single-threaded, so single-core performance
12+
is more important than multicore at present.
13+
- Memory:
14+
- 32GB or more of RAM (16GB may be possible to use, but will be substantially slower to build). Extra RAM
15+
can be acquired relatively cheaply, if the machine has spare memory slots (check compatibility carefully).
16+
- Storage
17+
- **Must be an SSD**. PCIe (M.2) preferred but not required. Do not use a spinning hard disk as a build drive - it will be painfully slow.
18+
- Doesn't need to be the primary OS drive - a separate drive also works and can generally be acquired relatively cheaply, if the machine has a spare M.2 or SATA port.
19+
- **For an EPICS build node**: 1TB capacity minimum. This capacity is needed because multiple builds' workspaces will be present at once.
20+
- **For a system tests build node**: 500GB capacity minimum.
21+
- Location
22+
- The machine should be located in a suitable place, ideally in a room with air-conditioning. Many of our
23+
build servers are in the R55 server room for this reason.
24+
25+
## Software Prerequisites
26+
27+
It is possible to follow the "full" first-time install guide to get all the components necessary for build jobs:
628

729
* First set up the machine so it can be used to build the back-end system manually by following these [instructions](/overview/First-Time-Build)
8-
930
* After you have registered the ISISICP go into `c:\Instrument\Apps\EPICS\ICP_Binaries\isisdae` and read `README_isisicp_reg.txt` in particular you will probably need to add the the account running jenkins to the windows group mentioned
10-
1131
* Delete the EPICS subdirectory that was created in the previous step (maintaining C:\Instrument\Apps)
1232

13-
### Adding to Jenkins
14-
15-
* Go to ​https://epics-jenkins.isis.rl.ac.uk/computer/ and log in to Jenkins
16-
33+
### EPICS build node
34+
35+
The bare minimum requirements for an EPICS/GUI/Uktena build node are:
36+
37+
- Visual Studio
38+
* C++
39+
* ATL
40+
* MFC
41+
* .NET targeting pack
42+
- Perl
43+
- Java
44+
- Maven
45+
- Doxygen
46+
- git
47+
- TwinCAT bits
48+
- symstore (`\\isis\inst$\Kits$\CompGroup\ICP\winsdk`)
49+
50+
### System tests node
51+
52+
The bare minimum requirements for a system tests node are:
53+
54+
- Create directories:
55+
* `c:\Instrument\Apps`
56+
* `c:\Instrument\var\autosave`
57+
* `c:\Instrument\var\logs`
58+
* `c:\Instrument\var\tmp`
59+
- Java
60+
- git
61+
- Latest MySQL (use `upgrade_mysql` script in `ibex_utils`)
62+
- Ensure there is a config directory for this instrument, in `C:\Instrument\Settings\config\<machine name>`
63+
* Must be checked out onto an instrument branch
64+
- Ensure there is a calibrations directory for this instrument, in `C:\Instrument\Settings\config\common`
65+
* Must be a git checkout, on `master` branch
66+
67+
## Adding to Jenkins
68+
69+
* Go to [our jenkins instance](https://epics-jenkins.isis.rl.ac.uk/computer/) and log in to Jenkins
1770
* Create a `New Node` with the Node Name as the computer name, select 'Permanent Agent'
18-
19-
* Set a root directory of C:\Jenkins
20-
21-
* Set a label of 'windows'
22-
71+
* Set a root directory of `C:\Jenkins`
72+
* The root directory may need to be on a different drive, if the `c:\` drive is small. See hardware prerequisites
73+
above, for minimum hardware requirements of this drive.
74+
* Set labels
75+
- For an EPICS build node, create **two** build nodes in Jenkins
76+
* One called `<computer_name>`, with the following labels: `ConfigCheck genie gui isisicp`, with 4 executors.
77+
* One called `<computer_name>_epics`, with the `epics_build` label, with a single executor.
78+
* For a system tests build node, create a single Jenkins node, with label `system_tests`, with a single executor.
2379
* Select the `Launch agent by connecting it to the controller`
24-
2580
* Save
26-
2781
* Select the slave that has just been created and make a note of secret. For an initial test make a note of the curl and java commands from `Run from agent command line: (Windows)`
82+
* In a command window in c:\jenkins run the curl and java commands. These can be put into a bat file for interactive running.
2883

29-
* in a command window in c:\jenkins run the curl and java commands. These can be put into a bat file for interactive running.
30-
31-
## setup as service
84+
## Setup as service
3285

3386
We use https://github.com/jenkinsci/windows-slave-installer-module and https://github.com/winsw/winsw the relevant files are in
3487
`\\isis\shares\ISIS_Experiment_Controls_Public\third_party_installers\latest_versions\builderserver` to copy to `c:\Jenkins`
@@ -43,16 +96,3 @@ Open an admin cmd window and run `jenkins-agent.exe install` and then `servies.m
4396
Find the jenkins service in the Service Manager window on the machine, and change it to run as `isis\ibexbuilder` rather than local service account, you'll need to enter `ISISBuilder` password.
4497

4598
Then run start service from the Service Manager window.
46-
47-
### configure jenkins-agent.xml
48-
49-
We need a longer git checkout time than default of ten minutes. To adjust for submodule operations see https://plugins.jenkins.io/git/#plugin-content-default-timeout which basically means you need to add `-Dorg.jenkinsci.plugins.gitclient.Git.timeOut=60` to both the jenkins server and the client args. On the java command line put it before the `-jar` option as otherwise it gets passed as an argument to the jar file
50-
51-
<a name="jenkins_gui_tests"></a>
52-
### Special Notes on Jenkins for GUI Tests
53-
54-
The GUI test currently run on NDWRENO. The test behaviour is different when Jenkins is running as a service, so instead it is run as a command from a batch file. The batch file is located on the desktop for the user builder. On first start up this shows running in a console Window, but this is unintentionally hidden the the system tests. (I am not sure that this is true anymore - John)
55-
56-
In case NDWRENO goes offline the command to run the slave is also shown at [http://epics-jenkins.isis.rl.ac.uk/computer/ndwreno/](http://epics-jenkins.isis.rl.ac.uk/computer/ndwreno/).
57-
58-
System tests need the RCPTT plugin this is downloaded from here (http://www.eclipse.org/rcptt/download/), currently on 2.1.0. Once downloaded extract them to C:\Jenkins\RCPTT_Runner (set in runner.cmd). The current version appears to need java 1.8 and because the instrument add the latest JDK you need to install JDK 1.8. The version of java that jenkins slave uses is set in `jenkins-clas.xml` in `c:\jenkins`.

doc/systems/Build-Servers.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)