1659c6e20f88a3160a74c9d42e2654197b85b417
[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     // call the normal OSM devops jobs (without root rights)
45     docker_args = ""
46     ci_helper = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
47     ci_helper.ci_pipeline( 'vim-emu',
48                            params.PROJECT_URL_PREFIX,
49                            params.GERRIT_PROJECT,
50                            params.GERRIT_BRANCH,
51                            params.GERRIT_REFSPEC,
52                            params.GERRIT_PATCHSET_REVISION,
53                            params.TEST_INSTALL,
54                            params.ARTIFACTORY_SERVER,
55                           docker_args)
56
57     // custom test stage that executes vim-emu's unit tests as root
58     stage("Post-Test") {
59         sh "Running post-test stage"
60         sh "docker run --rm --privileged --pid='host' -u 0:0 -v /var/run/docker.sock:/var/run/docker.sock osm/vim-emu-master pytest -v"
61         sh "docker run --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock osm/vim-emu-master flake8 --exclude=.eggs,devopsi,build,examples/charms --ignore=E501,W605,W504 ."
62         sh "echo 'done'"
63     }
64 }