gerrit, master builds: build almost all in docker

Instead of building some projects in docker, and some directly on the
build slave, build almost all of them in docker with few exceptions, and
make building in docker the default.

This has several advantages:
* build environment of master builds and gerrit verifications is the
  same, therefore the same build won't pass in gerrit and then fail in
  master
* all build environments are volatile
* no more conflicts while running VTY/CTRL tests
* fix osmo-python-tests gerrit review versions being installed to
  /usr/local of build slave (see previous commit message)

Projects that still do not get built in docker:
* openggsn: depends on libgtpnl, but does not build it in jenkins.sh
* osmo-bts: l1headers, various SDKs not installed in the docker image
* osmo-trx: LimeSuite is not in the docker image (and just installing the
            debian package does not work)
* osmo-ttcn3-hacks: TTCN-3 not installed in docker image
* pysim: needs to access real sim cards attached to the host
* sysmo-usim-tool: needs to access real sim cards attached to the host

Related: OS#3726, OS#3598
Change-Id: If4b7d2f9ffbc7e92699732d97a8f5829a88c5b35
This commit is contained in:
Oliver Smith 2019-09-19 15:06:10 +02:00 committed by osmith
parent 88b26a372d
commit b082c969cb
2 changed files with 34 additions and 42 deletions

View File

@ -39,7 +39,7 @@
-v "$PWD:/build" -v "$HOME/bin:/build_bin" \
-v "$ARTIFACT_STORE:/artifact_store" \
docker_img: 'osmocom:deb9_amd64'
cmd: ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
repos_url: 'ssh://jenkins@gerrit.osmocom.org:29418/{repos}'
gerrit_project: '{repos}'
@ -49,20 +49,18 @@
- cellmgr-ng:
concurrent: true
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
- libasn1c
- libgtpnl
- libosmo-abis
- libosmo-netif
- libosmo-sccp:
cmd: WITH_MANUALS=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- libosmo-sccp
- libosmocore:
a1_name: arch
a1: !!python/tuple [arm-none-eabi, amd64]
combination_filter: '!(arch=="arm-none-eabi" && label=="FreeBSD_amd64")'
cmd: './contrib/jenkins_arch.sh "$arch"'
cmd: '{docker_run} {docker_img} /build/contrib/jenkins_arch.sh "$arch"'
- libsmpp34
- libtelnet
@ -90,7 +88,6 @@
- osmo-bsc:
concurrent: true
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
- osmo-bts:
a1_name: FIRMWARE_VERSION
@ -120,19 +117,18 @@
combination_filter: >
(GTP == "--enable-gtp-linux" && WITH_MANUALS == "0") ||
(GTP == "--disable-gtp-linux" && WITH_MANUALS == "1")
cmd: ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
cmd: |
{docker_run} \
-e GTP="$GTP" \
-e WITH_MANUALS="$WITH_MANUALS" \
{docker_img} /build/contrib/jenkins.sh
- osmo-gsm-manuals
- osmo-hlr:
cmd: WITH_MANUALS=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmo-iuh:
cmd: WITH_MANUALS=1 ./contrib/jenkins.sh
- osmo-hlr
- osmo-iuh
- osmo-mgw:
concurrent: true
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
- osmo-msc:
a1_name: IU
@ -195,8 +191,7 @@
-e WITH_MANUALS="$WITH_MANUALS" \
{docker_img} /build/contrib/jenkins.sh
- osmo-sip-connector:
cmd: WITH_MANUALS=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmo-sip-connector
- osmo-trx:
a1_name: INSTR
@ -208,9 +203,9 @@
concurrent: true
combination_filter: >
(INSTR == "--with-sse" && WITH_MANUALS == "1")
cmd: 'ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh'
- osmocom-bb:
cmd: WITH_MANUALS=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmocom-bb
- osmo-tetra
- osmo-sysmon
- osmo-remsim
@ -222,6 +217,7 @@
- pysim:
slave_axis: !!python/tuple [simtester]
cmd: './contrib/jenkins.sh'
- osmo-ttcn3-hacks:
repos_url: 'https://gerrit.osmocom.org/{repos}'

View File

@ -18,7 +18,8 @@
a4: !!python/tuple [default]
combination_filter: ''
sequential: false
# most common build invocation (PUBLISH=1 is prepended to publish manual PDFs)
# most common build invocation
# PUBLISH=1 is for uploading manual PDFs
# SYS_PTRACE is needed for ASAN (https://github.com/google/sanitizers/issues/764)
docker_run: |
ARTIFACT_STORE="$HOME/jenkins_build_artifact_store"
@ -40,7 +41,7 @@
-v "$ARTIFACT_STORE:/artifact_store" \
-v "$HOME/.ssh:/home/build/.ssh:ro" \
docker_img: 'osmocom:deb9_amd64'
cmd: ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
wrappers: []
trigger:
email: jenkins-notifications@lists.osmocom.org laforge@gnumonks.org
@ -72,10 +73,12 @@
- libosmo-dsp:
cmd: |
autoreconf --install --force
./configure
$MAKE $PARALLEL_MAKE
$MAKE distcheck
{docker_run} \
{docker_img} sh -ex -c \
'autoreconf -fi; \
./configure; \
$MAKE $PARALLEL_MAKE; \
$MAKE distcheck'
trigger: master-osmo-gmr
email: gerrit-log@lists.osmocom.org laforge@gnumonks.org 246tnt@gmail.com
@ -104,13 +107,12 @@
master-osmo-iuh,
master-osmo-msc,
master-osmo-sgsn
cmd: WITH_MANUALS=1 PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- libosmocore:
a1_name: arch
a1: !!python/tuple [arm-none-eabi, amd64]
combination_filter: '!(arch=="arm-none-eabi" && label=="FreeBSD_amd64")'
cmd: './contrib/jenkins_arch.sh "$arch"'
cmd: '{docker_run} {docker_img} /build/contrib/jenkins_arch.sh "$arch"'
# Full triggers would be:
# trigger: >
# master-libosmo-abis, master-libosmo-netif, master-libosmo-sccp, master-openbsc,
@ -173,7 +175,6 @@
- osmo-bsc:
concurrent: true
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
- osmo-bts:
a1_name: FIRMWARE_VERSION
@ -202,7 +203,11 @@
combination_filter: >
(GTP == "--enable-gtp-linux" && WITH_MANUALS == "0") ||
(GTP == "--disable-gtp-linux" && WITH_MANUALS == "1")
cmd: PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
cmd: |
{docker_run} \
-e GTP="$GTP" \
-e WITH_MANUALS="$WITH_MANUALS" \
{docker_img} /build/contrib/jenkins.sh
trigger: master-osmo-sgsn
- osmo-gmr:
@ -210,17 +215,13 @@
- osmo-gsm-manuals:
node: 'osmocom-master-debian9'
cmd: |
./contrib/jenkins.sh
- osmo-gsm-tester:
cmd: PUBLISH=1 ./contrib/jenkins-build-manuals.sh
cmd: '{docker_run} {docker_img} /build/contrib/jenkins-build-manuals.sh'
- osmo-hlr:
cmd: WITH_MANUALS=1 PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmo-hlr
- osmo-iuh:
cmd: WITH_MANUALS=1 PUBLISH=1 ./contrib/jenkins.sh
# Full triggers would be:
# trigger: master-osmo-msc, master-osmo-sgsn
# Optimized:
@ -231,7 +232,6 @@
- osmo-mgw:
concurrent: true
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh'
trigger: master-osmo-msc, master-osmo-bsc
- osmo-msc:
@ -297,7 +297,6 @@
- osmo-sip-connector:
email: gerrit-log@lists.osmocom.org laforge@gnumonks.org holger@freyther.de
cmd: WITH_MANUALS=1 PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmo-tetra:
email: gerrit-log@lists.osmocom.org laforge@gnumonks.org 246tnt@gmail.com
@ -312,17 +311,14 @@
concurrent: true
combination_filter: >
(INSTR == "--with-sse" && WITH_MANUALS == "1")
cmd: PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
- osmocom-bb:
cmd: WITH_MANUALS=1 PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh
cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh'
- osmocom-bb
- osmo-sysmon
- osmo-remsim
- osmo-asf4-dfu
- simtrace2:
cmd: |
./contrib/jenkins.sh --publish
cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh --publish'
email: gerrit-log@lists.osmocom.org laforge@gnumonks.org kredon@sysmocom.de
- gapk