Fix: Do monkey.patch_all() only once.
[osm/vim-emu.git] / Jenkinsfile
1 // Copyright (c) 2018 by Paderborn University
2 // (manuel@peuster.de)
3 // ALL RIGHTS RESERVED.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 // Neither the name of the OSM, Paderborn University
18 // nor the names of its contributors may be used to endorse or promote
19 // products derived from this software without specific prior written
20 // permission.
21
22 properties([
23     parameters([
24         string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'),
25         string(defaultValue: 'osm/vim-emu', description: '', name: 'GERRIT_PROJECT'),
26         string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
27         string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
28         string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'),
29         booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'),
30         string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'),
31     ])
32 ])
33
34 def devops_checkout() {
35     dir('devops') {
36         git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH
37     }
38 }
39
40 node('docker') {
41     checkout scm
42     devops_checkout()
43
44     // vim-emu: We need to use privileged mode, docker.sock, and host pids for the container
45     // to test the emulator. Also needs -u 0:0 (root user inside container).
46     docker_args = "--privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock -u 0:0"
47
48     ci_helper = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
49     ci_helper.ci_pipeline( 'vim-emu',
50                            params.PROJECT_URL_PREFIX,
51                            params.GERRIT_PROJECT,
52                            params.GERRIT_BRANCH,
53                            params.GERRIT_REFSPEC,
54                            params.GERRIT_PATCHSET_REVISION,
55                            params.TEST_INSTALL,
56                            params.ARTIFACTORY_SERVER,
57                            docker_args)
58 }