1
1
/*
2
- * Copyright (C) 2019 Bosch Software Innovations GmbH
2
+ * Copyright (C) 2020 Bosch.IO GmbH
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
17
17
* License-Filename: LICENSE
18
18
*/
19
19
20
+ final DOCKER_BUILD_ARGS = ' --build-arg http_proxy=$http_proxy --build-arg https_proxy=$https_proxy'
21
+
22
+ // Disable the entry point to work around https://issues.jenkins-ci.org/browse/JENKINS-51307.
23
+ final DOCKER_RUN_ARGS = ' -e http_proxy -e https_proxy --entrypoint=""'
24
+
20
25
pipeline {
21
- agent any
26
+ agent none
22
27
23
28
parameters {
24
29
string(
@@ -54,25 +59,38 @@ pipeline {
54
59
55
60
stages {
56
61
stage(' Clone project' ) {
62
+ agent any
63
+
64
+ environment {
65
+ HOME = " ${ env.WORKSPACE} @tmp"
66
+ PROJECT_DIR = " ${ env.HOME} /project"
67
+ }
68
+
57
69
steps {
58
- sh ' rm -fr project '
70
+ sh ' rm -fr $PROJECT_DIR '
59
71
60
72
// See https://jenkins.io/doc/pipeline/steps/git/.
61
73
checkout([$class : ' GitSCM' ,
62
74
userRemoteConfigs : [[url : params. VCS_URL ]],
63
75
branches : [[name : " ${ params.VCS_REVISION} " ]],
64
- extensions : [[$class : ' RelativeTargetDirectory' , relativeTargetDir : ' project /source' ]]
76
+ extensions : [[$class : ' RelativeTargetDirectory' , relativeTargetDir : " ${ env.PROJECT_DIR } /source" ]]
65
77
])
66
78
}
67
79
}
68
80
69
- stage(' Build ORT distribution' ) {
70
- steps {
71
- sh ' docker/build.sh'
81
+ stage(' Run the ORT analyzer' ) {
82
+ agent {
83
+ dockerfile {
84
+ additionalBuildArgs DOCKER_BUILD_ARGS
85
+ args DOCKER_RUN_ARGS
86
+ }
87
+ }
88
+
89
+ environment {
90
+ HOME = " ${ env.WORKSPACE} @tmp"
91
+ PROJECT_DIR = " ${ env.HOME} /project"
72
92
}
73
- }
74
93
75
- stage(' Run ORT analyzer' ) {
76
94
steps {
77
95
sh '''
78
96
if [ "$ALLOW_DYNAMIC_VERSIONS" = "true" ]; then
@@ -83,44 +101,73 @@ pipeline {
83
101
USE_CLEARLY_DEFINED_CURATIONS_PARAM="--clearly-defined-curations"
84
102
fi
85
103
86
- docker/run.sh "-v $WORKSPACE/project:/project" $LOG_LEVEL analyze $ALLOW_DYNAMIC_VERSIONS_PARAM $USE_CLEARLY_DEFINED_CURATIONS_PARAM -f JSON,YAML -i /project/source -o /project/ort/analyzer
104
+ rm -fr analyzer/out/results
105
+ /opt/ort/bin/ort $LOG_LEVEL analyze $ALLOW_DYNAMIC_VERSIONS_PARAM $USE_CLEARLY_DEFINED_CURATIONS_PARAM -f JSON,YAML -i $PROJECT_DIR/source -o analyzer/out/results
87
106
'''
88
107
}
89
108
90
109
post {
91
110
always {
92
111
archiveArtifacts(
93
- artifacts : ' project/ort/analyzer /*' ,
112
+ artifacts : ' analyzer/out/results /*' ,
94
113
fingerprint : true
95
114
)
96
115
}
97
116
}
98
117
}
99
118
100
- stage(' Run ORT scanner' ) {
119
+ stage(' Run the ORT scanner' ) {
120
+ agent {
121
+ dockerfile {
122
+ additionalBuildArgs DOCKER_BUILD_ARGS
123
+ args DOCKER_RUN_ARGS
124
+ }
125
+ }
126
+
127
+ environment {
128
+ HOME = " ${ env.WORKSPACE} @tmp"
129
+ }
130
+
101
131
steps {
102
- sh ' docker/run.sh "-v $WORKSPACE/project:/project" $LOG_LEVEL scan -f JSON,YAML -i /project/ort/analyzer/analyzer-result.yml -o /project/ort/scanner'
132
+ sh '''
133
+ rm -fr scanner/out/results
134
+ /opt/ort/bin/ort $LOG_LEVEL scan -f JSON,YAML -i analyzer/out/results/analyzer-result.yml -o scanner/out/results
135
+ '''
103
136
}
104
137
105
138
post {
106
139
always {
107
140
archiveArtifacts(
108
- artifacts : ' project/ort/scanner /*' ,
141
+ artifacts : ' scanner/out/results /*' ,
109
142
fingerprint : true
110
143
)
111
144
}
112
145
}
113
146
}
114
147
115
- stage(' Run ORT reporter' ) {
148
+ stage(' Run the ORT reporter' ) {
149
+ agent {
150
+ dockerfile {
151
+ additionalBuildArgs DOCKER_BUILD_ARGS
152
+ args DOCKER_RUN_ARGS
153
+ }
154
+ }
155
+
156
+ environment {
157
+ HOME = " ${ env.WORKSPACE} @tmp"
158
+ }
159
+
116
160
steps {
117
- sh ' docker/run.sh "-v $WORKSPACE/project:/project" $LOG_LEVEL report -f CycloneDX,NoticeByPackage,NoticeSummary,StaticHTML,WebApp -i /project/ort/scanner/scan-result.yml -o /project/ort/reporter'
161
+ sh '''
162
+ rm -fr reporter/out/results
163
+ /opt/ort/bin/ort $LOG_LEVEL report -f CycloneDX,NoticeByPackage,NoticeSummary,StaticHTML,WebApp -i scanner/out/results/scan-result.yml -o reporter/out/results
164
+ '''
118
165
}
119
166
120
167
post {
121
168
always {
122
169
archiveArtifacts(
123
- artifacts : ' project/ort/reporter /*' ,
170
+ artifacts : ' reporter/out/results /*' ,
124
171
fingerprint : true
125
172
)
126
173
}
0 commit comments