-
Notifications
You must be signed in to change notification settings - Fork 32
/
Jenkinsfile
68 lines (62 loc) · 3.03 KB
/
Jenkinsfile
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
// Copyright (c) 2018 by Paderborn University
// ([email protected])
// ALL RIGHTS RESERVED.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Neither the name of the OSM, Paderborn University
// nor the names of its contributors may be used to endorse or promote
// products derived from this software without specific prior written
// permission.
properties([
parameters([
string(defaultValue: env.BRANCH_NAME, description: '', name: 'GERRIT_BRANCH'),
string(defaultValue: 'osm/vim-emu', description: '', name: 'GERRIT_PROJECT'),
string(defaultValue: env.GERRIT_REFSPEC, description: '', name: 'GERRIT_REFSPEC'),
string(defaultValue: env.GERRIT_PATCHSET_REVISION, description: '', name: 'GERRIT_PATCHSET_REVISION'),
string(defaultValue: 'https://osm.etsi.org/gerrit', description: '', name: 'PROJECT_URL_PREFIX'),
booleanParam(defaultValue: false, description: '', name: 'TEST_INSTALL'),
string(defaultValue: 'artifactory-osm', description: '', name: 'ARTIFACTORY_SERVER'),
])
])
def devops_checkout() {
dir('devops') {
git url: "${PROJECT_URL_PREFIX}/osm/devops", branch: params.GERRIT_BRANCH
}
}
node('docker') {
checkout scm
devops_checkout()
// call the normal OSM devops jobs (without root rights)
docker_args = ""
ci_helper = load "devops/jenkins/ci-pipelines/ci_stage_2.groovy"
ci_helper.ci_pipeline( 'vim-emu',
params.PROJECT_URL_PREFIX,
params.GERRIT_PROJECT,
params.GERRIT_BRANCH,
params.GERRIT_REFSPEC,
params.GERRIT_PATCHSET_REVISION,
params.TEST_INSTALL,
params.ARTIFACTORY_SERVER,
docker_args)
// custom test stage that executes vim-emu's unit tests as root
// we cannot do this as part of the normal stage 2 since it would create
// files owned by root that could not be cleaned up.
stage("Post-Test") {
sh "docker images"
sh "docker run --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock -u 0:0 osm/vim-emu-master pip list"
sh "docker run --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock -u 0:0 osm/vim-emu-master pytest -v"
sh "docker run --rm --privileged --pid='host' -v /var/run/docker.sock:/var/run/docker.sock -u 0:0 osm/vim-emu-master flake8 --exclude=.eggs,devops,build,examples/charms --ignore=E501,W605,W504 ."
sh "echo 'done'"
}
}