aboutsummaryrefslogtreecommitdiffstats
path: root/jobs/ttcn3-testsuites-kernel-git.yml
blob: e37812210e6fd7b6bb19d97d94ade061cfa4bdb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# TTCN-3 testsuite jobs with parameters to build a kernel from source (OS#3208)
# In contrary to the kernel jobs in ttcn3-testsuites.yml, here the jobs are
# manually triggered and the kernel git repository is not hardcoded.
---
- project:
    name: 'ttcn3-testsuites-kernel-git'
    concurrent: false
    disabled: false
    description: ""
    node: ttcn3
    blocking: "^{job-name}.*"
    wipe_workspace: false
    jobs:
      - "{job-name}"
    job-name:
      - ttcn3-ggsn-test-kernel-git:
          blocking: "^(ttcn3|TTCN3-.*)-ggsn-test.*"
          # Cache the linux source tree in the workspace of one node
          node: ttcn3-ggsn-test-kernel-git
          description: |
            Run the
            <a href="https://osmocom.org/projects/cellular-infrastructure/wiki/Titan_TTCN3_Testsuites">
              Osmocom Titan TTCN-3 testsuite</a> against
            <a href="https://osmocom.org/projects/openggsn/wiki/OsmoGGSN">
              OsmoGGSN</a> with the GTP kernel module. The kernel is built
            from the git repository and branch provided as parameters when
            starting this job.

- job-template:
    name: '{job-name}'
    project-type: freestyle
    disabled: '{obj:disabled}'
    defaults: global
    description: '{obj:description}'
    node: '{obj:node}'
    parameters:
      - string:
          name: KERNEL_URL
          description: |
                Remote URL of git repository, from which the kernel will be
                built.
          default: 'https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git'
      - string:
          name: KERNEL_REMOTE_NAME
          description: |
                Short name for the remote URL, which will be used to add it to
                the local git checkout with <code>git remote add</code>.
          default: 'net-next'
      - string:
          name: KERNEL_BRANCH
          description: |
                Branch to check out from the remote with
                <code>KERNEL_URL</code> and <code>KERNEL_REMOTE_NAME</code>
                before building the kernel.
          default: 'master'
      - choice:
          name: OSMOCOM_VERSION
          choices:
            - latest
            - master
          description: |
                Version of the Osmocom stack to test against the kernel. Either
                <code>latest</code> for the latest release version, or
                <code>master</code> for HEAD of Osmocom git repositories.
          default: 'latest'
      - string:
          name: BRANCH
          description: |
                Branch of <code>docker-playground.git</code>
                (for development of the test infrastructure, don't change this
                when testing kernel trees).
          default: '*/master'

    builders:
      - shell: |-
          export REGISTRY_HOST="registry.osmocom.org"

          # Translate job name to docker-playground dir and relevant
          # environment variables
          case "{job-name}" in
              ttcn3-ggsn-test-kernel-git)
                  DIR="ttcn3-ggsn-test"
                  export IMAGE_SUFFIX="$OSMOCOM_VERSION"
                  export KERNEL_TEST=1
                  export KERNEL_BUILD=1
                  ;;
              *)
                  echo "Can't handle job: {job-name}"
                  exit 1
                  ;;
          esac

          cd "$DIR"
          ./jenkins.sh
    scm:
      - git:
          branches:
            - '$BRANCH'
          url: https://gerrit.osmocom.org/docker-playground
          git-config-name: 'Jenkins Builder'
          git-config-email: 'jenkins@osmocom.org'
          wipe-workspace: "{obj:wipe_workspace}"
    publishers:
      - junit:
          results: '**/junit-xml-*.log'
          allow-empty-results: false
      - email:
          notify-every-unstable-build: true
          recipients: laforge@gnumonks.org osmith@sysmocom.de
          send-to-individuals: false
      - archive:
          allow-empty: false
          artifacts: logs/**/*
          case-sensitive: true
          default-excludes: true
          fingerprint: false
          only-if-success: false
    properties:
    - build-blocker:
        use-build-blocker: true
        blocking-jobs:
          - "{obj:blocking}"
    - build-discarder:
        days-to-keep: 30
        num-to-keep: 120
        artifact-days-to-keep: -1
        artifact-num-to-keep: -1
    wrappers:
    - ansicolor:
        colormap: xterm

# vim: expandtab tabstop=2 shiftwidth=2