Jenkins » History » Version 4
laforge, 02/21/2016 02:30 PM
1 | 1 | ||
---|---|---|---|
2 | 4 | laforge | h1. Continuous Integration with Jenkins |
3 | 1 | ||
4 | 4 | laforge | h2. What |
5 | 3 | ||
6 | 1 | The software stack has grown to a size where it make sense to somehow track the state after |
|
7 | each commit. The Jenkins Software allows us to do this. The installation can be found at |
||
8 | 4 | laforge | http://jenkins.osmocom.org/jenkins and all of Osmocom is tracked there. The goal is to |
9 | 1 | have all projects/repositories of the osmocom umbrella tracked there. We are happy if people |
|
10 | donate CPU time to be used as additional nodes to execute the compile jobs. |
||
11 | |||
12 | 3 | h2. How |
|
13 | |||
14 | 4 | laforge | We are using Jenkins as it comes from the FreeBSD port system. It runs using the standalone |
15 | 3 | servlet container (Winstone Servlet Engine) and is behind one (IPv6) or two (IPv4) cherokee |
|
16 | 4 | laforge | reverse proxies. Currently there are two nodes FreeBSD 8.2/AMD64 and Debian Squeeze/i386 ( |
17 | running on the FreeBSD kernel, any weirdness might be a broken syscall implementation). |
||
18 | 3 | ||
19 | 2 | h3. Custom Script |
|
20 | 1 | ||
21 | 4 | laforge | The @osmo-deps.sh@ script was created to clone/update a dependency in the workspace of a build |
22 | 1 | node. The script will try to git-clone, git-fetch, git-reset --hard the dependency. |
|
23 | 3 | ||
24 | <pre> |
||
25 | 1 | <code class="sh"> |
|
26 | if ! test -d $1; |
||
27 | then |
||
28 | git clone git://git.osmocom.org/$1 $1 |
||
29 | fi |
||
30 | |||
31 | cd $1 |
||
32 | git fetch origin |
||
33 | 3 | git reset --hard origin/master |
|
34 | 1 | </code></pre> |
|
35 | |||
36 | 3 | ||
37 | 4 | laforge | h3. FreeBSD 8.2 and Osmocom |
38 | 3 | ||
39 | 1 | Not everything is required to build on GNU/Linux systems, for SIMtrace a fake libusb-1.0.pc |
|
40 | was created to point to the /usr/include,/usr/lib for libusb, all dependencies (fftw, erlang, |
||
41 | autotools...) were installed through the port system |
||
42 | 3 | ||
43 | |||
44 | h3. Debian/Squeeze |
||
45 | 1 | ||
46 | Normal Debian/Squeeze installation, all dependencies installed via the apt/dpkg package |
||
47 | system. The arm-elf-gcc toolchain is installed using the toolchain script of the bb.osmocom.org |
||
48 | wiki. |