@@ -56,159 +56,187 @@ properties(
56
56
]
57
57
)
58
58
59
- node(' default' ) {
60
- stage(' Generate Tarball' ) {
61
- cleanWs()
59
+ pipeline {
62
60
63
- checkout scm
64
-
65
- dir(path : ' clamav_documentation' ) {
66
- git(url : ' https://github.com/Cisco-Talos/clamav-documentation.git' , branch : " gh-pages" )
67
- }
68
-
69
- dir(path : ' docs/html' ) {
70
- sh ''' # Move the clamav-documentation here.
71
- cp -r ../../clamav_documentation/* .
72
- # Clean-up
73
- rm -rf ../../clamav_documentation
74
- rm -rf .git .nojekyll CNAME Placeholder || true
75
- '''
76
- }
61
+ agent {
62
+ label " default"
63
+ }
77
64
78
- dir(path : ' build' ) {
79
- sh """ # CPack
80
- cmake .. -D VENDOR_DEPENDENCIES=ON \
81
- -D JSONC_INCLUDE_DIR="$HOME /.mussels/install/host-static/include/json-c" \
82
- -D JSONC_LIBRARY="$HOME /.mussels/install/host-static/lib/libjson-c.a" \
83
- -D ENABLE_JSON_SHARED=OFF \
84
- -D BZIP2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
85
- -D BZIP2_LIBRARY_RELEASE="$HOME /bzip2-1.0.8-install/lib/libbz2.a" \
86
- -D OPENSSL_ROOT_DIR="$HOME /.mussels/install/host-static" \
87
- -D OPENSSL_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
88
- -D OPENSSL_CRYPTO_LIBRARY="$HOME /.mussels/install/host-static/lib/libcrypto.a" \
89
- -D OPENSSL_SSL_LIBRARY="$HOME /.mussels/install/host-static/lib/libssl.a" \
90
- -D LIBXML2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include/libxml2" \
91
- -D LIBXML2_LIBRARY="$HOME /.mussels/install/host-static/lib/libxml2.a" \
92
- -D PCRE2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
93
- -D PCRE2_LIBRARY="$HOME /.mussels/install/host-static/lib/libpcre2-8.a" \
94
- -D CURSES_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
95
- -D CURSES_LIBRARY="$HOME /.mussels/install/host-static/lib/libncurses.a;$HOME /.mussels/install/host-static/lib/libtinfo.a" \
96
- -D ZLIB_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
97
- -D ZLIB_LIBRARY="$HOME /.mussels/install/host-static/lib/libz.a" \
98
- -D LIBCHECK_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
99
- -D LIBCHECK_LIBRARY="$HOME /.mussels/install/host-static/lib/libcheck.a"
65
+ stages {
100
66
101
- cpack --config CPackSourceConfig.cmake """
102
- archiveArtifacts(artifacts : " clamav-${ params.VERSION} *.tar.gz" , onlyIfSuccessful : true )
67
+ stage(' GitGuardian Scan' ) {
68
+ environment {
69
+ GITGUARDIAN_API_KEY = credentials(' gitguardian-token' )
70
+ GITGUARDIAN_API_URL = ' https://gitguardian.cisco.com/'
71
+ }
72
+ agent { label " docker" }
73
+ steps {
74
+ withDockerContainer(args : " -i --entrypoint=''" , image : ' gitguardian/ggshield:latest' ) {
75
+ sh ' ggshield secret scan ci'
76
+ }
77
+ }
103
78
}
104
79
105
- cleanWs()
106
- }
80
+ stage(' Generate Tarball' ) {
81
+ steps {
82
+ cleanWs()
107
83
108
- def buildResult
84
+ checkout scm
109
85
110
- stage(' Build' ) {
111
- buildResult = build(job : " ${ params.BUILD_PIPELINES_PATH} /${ params.BUILD_PIPELINE} " ,
112
- propagate : true ,
113
- wait : true ,
114
- parameters : [
115
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
116
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
117
- [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
118
- [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
119
- [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
120
- ]
121
- )
122
- echo " ${ params.BUILD_PIPELINES_PATH} /${ params.BUILD_PIPELINE} #${ buildResult.number} succeeded."
123
- }
86
+ dir(path : ' clamav_documentation' ) {
87
+ git(url : ' https://github.com/Cisco-Talos/clamav-documentation.git' , branch : " gh-pages" )
88
+ }
124
89
125
- stage(' Test' ) {
126
- def tasks = [:]
90
+ dir(path : ' docs/html' ) {
91
+ sh """ # Move the clamav-documentation here.
92
+ cp -r ../../clamav_documentation/ .
93
+ # Clean-up
94
+ rm -rf ../../clamav_documentation
95
+ rm -rf .git .nojekyll CNAME Placeholder || true
96
+ """
97
+ }
127
98
128
- tasks[" package_regular_custom" ] = {
129
- def exception = null
130
- try {
131
- stage(" Package" ) {
132
- final regularResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.PACKAGE_PIPELINE} " ,
133
- propagate : true ,
134
- wait : true ,
135
- parameters : [
136
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
137
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
138
- [$class : ' StringParameterValue' , name : ' BUILD_JOB_NAME' , value : " ${ params.BUILD_PIPELINES_PATH} /${ params.BUILD_PIPELINE} " ],
139
- [$class : ' StringParameterValue' , name : ' BUILD_JOB_NUMBER' , value : " ${ buildResult.number} " ],
140
- [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_BRANCH} " ],
141
- [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
142
- [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
143
- [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
144
- ]
145
- )
146
- echo " ${ params.TEST_PIPELINES_PATH} /${ params.PACKAGE_PIPELINE} #${ regularResult.number} succeeded."
99
+ dir(path : ' build' ) {
100
+ sh """ # CPack
101
+ cmake .. -D VENDOR_DEPENDENCIES=ON \
102
+ -D JSONC_INCLUDE_DIR="$HOME /.mussels/install/host-static/include/json-c" \
103
+ -D JSONC_LIBRARY="$HOME /.mussels/install/host-static/lib/libjson-c.a" \
104
+ -D ENABLE_JSON_SHARED=OFF \
105
+ -D BZIP2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
106
+ -D BZIP2_LIBRARY_RELEASE="$HOME /bzip2-1.0.8-install/lib/libbz2.a" \
107
+ -D OPENSSL_ROOT_DIR="$HOME /.mussels/install/host-static" \
108
+ -D OPENSSL_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
109
+ -D OPENSSL_CRYPTO_LIBRARY="$HOME /.mussels/install/host-static/lib/libcrypto.a" \
110
+ -D OPENSSL_SSL_LIBRARY="$HOME /.mussels/install/host-static/lib/libssl.a" \
111
+ -D LIBXML2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include/libxml2" \
112
+ -D LIBXML2_LIBRARY="$HOME /.mussels/install/host-static/lib/libxml2.a" \
113
+ -D PCRE2_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
114
+ -D PCRE2_LIBRARY="$HOME /.mussels/install/host-static/lib/libpcre2-8.a" \
115
+ -D CURSES_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
116
+ -D CURSES_LIBRARY="$HOME /.mussels/install/host-static/lib/libncurses.a;$HOME /.mussels/install/host-static/lib/libtinfo.a" \
117
+ -D ZLIB_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
118
+ -D ZLIB_LIBRARY="$HOME /.mussels/install/host-static/lib/libz.a" \
119
+ -D LIBCHECK_INCLUDE_DIR="$HOME /.mussels/install/host-static/include" \
120
+ -D LIBCHECK_LIBRARY="$HOME /.mussels/install/host-static/lib/libcheck.a"
121
+
122
+ cpack --config CPackSourceConfig.cmake
123
+ """
124
+ archiveArtifacts(artifacts : " clamav-${ params.VERSION} *.tar.gz" , onlyIfSuccessful : true )
147
125
}
148
- } catch (exc) {
149
- echo " ${ params.TEST_PIPELINES_PATH} /${ params.PACKAGE_PIPELINE} failed."
150
- exception = exc
126
+ cleanWs()
151
127
}
128
+ }
152
129
153
- try {
154
- stage(" Regular From-Source" ) {
155
- final regularResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.REGULAR_PIPELINE} " ,
130
+ stage(' Build' ) {
131
+ steps {
132
+ script{
133
+ buildResult = build(job : " ${ params.BUILD_PIPELINES_PATH} /${ params.BUILD_PIPELINE} " ,
156
134
propagate : true ,
157
135
wait : true ,
158
136
parameters : [
159
137
[$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
160
138
[$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
161
- [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_BRANCH} " ],
162
139
[$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
163
140
[$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
164
141
[$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
165
142
]
166
143
)
167
- echo " ${ params.TEST_PIPELINES_PATH } /${ params.REGULAR_PIPELINE } #${ regularResult .number} succeeded."
144
+ echo " ${ params.BUILD_PIPELINES_PATH } /${ params.BUILD_PIPELINE } #${ buildResult .number} succeeded."
168
145
}
169
- } catch (exc) {
170
- echo " ${ params.TEST_PIPELINES_PATH} /${ params.REGULAR_PIPELINE} failed."
171
- exception = exc
172
- }
173
-
174
- stage(" Custom From-Source" ) {
175
- final customResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.CUSTOM_PIPELINE} " ,
176
- propagate : true ,
177
- wait : true ,
178
- parameters : [
179
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
180
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
181
- [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_CUSTOM_BRANCH} " ],
182
- [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
183
- [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
184
- [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
185
- ]
186
- )
187
- echo " ${ params.TEST_PIPELINES_PATH} /${ params.CUSTOM_PIPELINE} #${ customResult.number} succeeded."
188
- }
189
- if (exception != null ) {
190
- echo " Custom Pipeline passed, but prior pipelines failed!"
191
- throw exception
192
146
}
193
147
}
194
148
195
- tasks[" fuzz_regression" ] = {
196
- stage(" Fuzz Regression" ) {
197
- final fuzzResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.FUZZ_PIPELINE} " ,
198
- propagate : true ,
199
- wait : true ,
200
- parameters : [
201
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
202
- [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
203
- [$class : ' StringParameterValue' , name : ' TESTS_FUZZ_BRANCH' , value : " ${ params.TESTS_FUZZ_BRANCH} " ],
204
- [$class : ' StringParameterValue' , name : ' FUZZ_CORPUS_BRANCH' , value : " ${ params.FUZZ_CORPUS_BRANCH} " ],
205
- [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ]
206
- ]
207
- )
208
- echo " ${ params.TEST_PIPELINES_PATH} /${ params.FUZZ_PIPELINE} #${ fuzzResult.number} succeeded."
149
+ stage(' Tests' ) {
150
+ failFast false
151
+ parallel {
152
+ stage(' Pipeline' ) {
153
+ stages{
154
+ stage(" Package" ) {
155
+ steps {
156
+ catchError(buildResult : ' SUCCESS' , stageResult : ' FAILURE' ) {
157
+ script{
158
+ packageResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.PACKAGE_PIPELINE} " ,
159
+ propagate : true ,
160
+ wait : true ,
161
+ parameters : [
162
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
163
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
164
+ [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_BRANCH} " ],
165
+ [$class : ' StringParameterValue' , name : ' BUILD_JOB_NAME' , value : " ${ params.BUILD_PIPELINES_PATH} /${ params.BUILD_PIPELINE} " ],
166
+ [$class : ' StringParameterValue' , name : ' BUILD_JOB_NUMBER' , value : " ${ buildResult.number} " ],
167
+ [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
168
+ [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
169
+ [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
170
+ ]
171
+ )
172
+ echo " ${ params.TEST_PIPELINES_PATH} /${ params.PACKAGE_PIPELINE} #${ packageResult.number} succeeded."
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ stage(" Regular From-Source" ) {
179
+ steps {
180
+ catchError(buildResult : ' SUCCESS' , stageResult : ' FAILURE' ) {
181
+ script{
182
+ regularResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.REGULAR_PIPELINE} " ,
183
+ propagate : true ,
184
+ wait : true ,
185
+ parameters : [
186
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
187
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
188
+ [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_BRANCH} " ],
189
+ [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
190
+ [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
191
+ [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
192
+ ]
193
+ )
194
+ echo " ${ params.TEST_PIPELINES_PATH} /${ params.REGULAR_PIPELINE} #${ regularResult.number} succeeded."
195
+ }
196
+ }
197
+ }
198
+ }
199
+
200
+ stage(" Custom From-Source" ) {
201
+ steps {
202
+ script{
203
+ customResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.CUSTOM_PIPELINE} " ,
204
+ propagate : true ,
205
+ wait : true ,
206
+ parameters : [
207
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
208
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
209
+ [$class : ' StringParameterValue' , name : ' TESTS_BRANCH' , value : " ${ params.TESTS_CUSTOM_BRANCH} " ],
210
+ [$class : ' StringParameterValue' , name : ' FRAMEWORK_BRANCH' , value : " ${ params.FRAMEWORK_BRANCH} " ],
211
+ [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ],
212
+ [$class : ' StringParameterValue' , name : ' SHARED_LIB_BRANCH' , value : " ${ params.SHARED_LIB_BRANCH} " ]
213
+ ]
214
+ )
215
+ echo " ${ params.TEST_PIPELINES_PATH} /${ params.CUSTOM_PIPELINE} #${ customResult.number} succeeded."
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ stage(" Fuzz Regression" ) {
222
+ steps {
223
+ script{
224
+ fuzzResult = build(job : " ${ params.TEST_PIPELINES_PATH} /${ params.FUZZ_PIPELINE} " ,
225
+ propagate : true ,
226
+ wait : true ,
227
+ parameters : [
228
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NAME' , value : " ${ JOB_NAME} " ],
229
+ [$class : ' StringParameterValue' , name : ' CLAMAV_JOB_NUMBER' , value : " ${ BUILD_NUMBER} " ],
230
+ [$class : ' StringParameterValue' , name : ' TESTS_FUZZ_BRANCH' , value : " ${ params.TESTS_FUZZ_BRANCH} " ],
231
+ [$class : ' StringParameterValue' , name : ' FUZZ_CORPUS_BRANCH' , value : " ${ params.FUZZ_CORPUS_BRANCH} " ],
232
+ [$class : ' StringParameterValue' , name : ' VERSION' , value : " ${ params.VERSION} " ]
233
+ ]
234
+ )
235
+ echo " ${ params.TEST_PIPELINES_PATH} /${ params.FUZZ_PIPELINE} #${ fuzzResult.number} succeeded."
236
+ }
237
+ }
238
+ }
209
239
}
210
240
}
211
-
212
- parallel tasks
213
241
}
214
- }
242
+ }
0 commit comments