2019-06-28 18:19:02 -04:00
|
|
|
properties(
|
|
|
|
[
|
2019-08-02 09:21:28 -04:00
|
|
|
disableConcurrentBuilds(),
|
2021-09-15 17:38:47 -04:00
|
|
|
buildDiscarder(logRotator(
|
|
|
|
artifactDaysToKeepStr: '15',
|
|
|
|
artifactNumToKeepStr: '15',
|
|
|
|
daysToKeepStr: '30',
|
|
|
|
numToKeepStr: '20')),
|
|
|
|
|
2019-06-28 18:19:02 -04:00
|
|
|
parameters(
|
|
|
|
[
|
2019-06-28 20:41:37 -04:00
|
|
|
string(name: 'VERSION',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: '1.4.0',
|
2019-06-28 20:41:37 -04:00
|
|
|
description: 'ClamAV version string'),
|
2019-11-22 19:40:16 -05:00
|
|
|
string(name: 'FRAMEWORK_BRANCH',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: '1.4',
|
2019-11-22 19:40:16 -05:00
|
|
|
description: 'test-framework branch'),
|
2020-10-16 03:10:49 -07:00
|
|
|
string(name: 'TESTS_BRANCH',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: '1.4',
|
2019-06-28 20:41:37 -04:00
|
|
|
description: 'tests branch'),
|
2020-10-16 03:10:49 -07:00
|
|
|
string(name: 'TESTS_CUSTOM_BRANCH',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: '1.4',
|
2019-11-22 19:40:16 -05:00
|
|
|
description: 'tests-custom branch'),
|
2020-10-16 03:10:49 -07:00
|
|
|
string(name: 'TESTS_FUZZ_BRANCH',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: '1.4',
|
2020-10-16 03:10:49 -07:00
|
|
|
description: 'tests-fuzz-regression branch'),
|
2024-04-30 13:25:31 -04:00
|
|
|
string(name: 'TEST_PIPELINES_PATH',
|
|
|
|
defaultValue: 'ClamAV/test-pipelines',
|
|
|
|
description: 'test-pipelines path for clamav in Jenkins'),
|
2020-10-16 03:10:49 -07:00
|
|
|
string(name: 'BUILD_PIPELINE',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: 'build-1.4',
|
2020-10-16 03:10:49 -07:00
|
|
|
description: 'test-pipelines branch for build acceptance'),
|
2019-06-28 20:41:37 -04:00
|
|
|
string(name: 'REGULAR_PIPELINE',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: 'regular-1.4',
|
2019-06-28 20:41:37 -04:00
|
|
|
description: 'test-pipelines branch for regular tests.'),
|
|
|
|
string(name: 'CUSTOM_PIPELINE',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: 'custom-1.4',
|
2019-06-28 20:41:37 -04:00
|
|
|
description: 'test-pipelines branch for custom tests'),
|
|
|
|
string(name: 'FUZZ_PIPELINE',
|
2024-02-05 13:40:30 -05:00
|
|
|
defaultValue: 'fuzz-regression-1.4',
|
2019-06-28 20:41:37 -04:00
|
|
|
description: 'test-pipelines branch for fuzz regression tests'),
|
2020-10-16 03:10:49 -07:00
|
|
|
string(name: 'FUZZ_CORPUS_BRANCH',
|
2019-06-28 20:41:37 -04:00
|
|
|
defaultValue: 'master',
|
|
|
|
description: 'private-fuzz-corpus branch'),
|
2019-11-22 19:40:16 -05:00
|
|
|
string(name: 'SHARED_LIB_BRANCH',
|
|
|
|
defaultValue: 'master',
|
|
|
|
description: 'tests-jenkins-shared-libraries branch')
|
2019-06-28 18:19:02 -04:00
|
|
|
]
|
|
|
|
)
|
|
|
|
]
|
|
|
|
)
|
|
|
|
|
2023-04-24 18:45:45 -07:00
|
|
|
node('ubuntu-18-x64') {
|
2021-05-03 19:09:19 -07:00
|
|
|
stage('Generate Tarball') {
|
|
|
|
cleanWs()
|
|
|
|
|
|
|
|
checkout scm
|
|
|
|
|
|
|
|
dir(path: 'clamav_documentation') {
|
|
|
|
git(url: 'https://github.com/Cisco-Talos/clamav-documentation.git', branch: "gh-pages")
|
|
|
|
}
|
|
|
|
|
|
|
|
dir(path: 'docs/html') {
|
|
|
|
sh '''# Move the clamav-documentation here.
|
|
|
|
cp -r ../../clamav_documentation/* .
|
|
|
|
# Clean-up
|
|
|
|
rm -rf ../../clamav_documentation
|
|
|
|
rm -rf .git .nojekyll CNAME Placeholder || true
|
|
|
|
'''
|
|
|
|
}
|
|
|
|
|
|
|
|
dir(path: 'build') {
|
|
|
|
sh """# CPack
|
|
|
|
cmake .. -D VENDOR_DEPENDENCIES=ON
|
2021-08-02 13:32:19 -07:00
|
|
|
cpack --config CPackSourceConfig.cmake """
|
|
|
|
archiveArtifacts(artifacts: "clamav-${params.VERSION}*.tar.gz", onlyIfSuccessful: true)
|
2021-05-03 19:09:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
cleanWs()
|
|
|
|
}
|
|
|
|
|
|
|
|
def buildResult
|
|
|
|
|
2019-06-28 20:41:37 -04:00
|
|
|
stage('Build') {
|
2024-04-30 13:25:31 -04:00
|
|
|
buildResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.BUILD_PIPELINE}",
|
2019-06-28 20:41:37 -04:00
|
|
|
propagate: true,
|
|
|
|
wait: true,
|
|
|
|
parameters: [
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
2019-11-22 19:40:16 -05:00
|
|
|
[$class: 'StringParameterValue', name: 'FRAMEWORK_BRANCH', value: "${params.FRAMEWORK_BRANCH}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
2019-06-28 20:41:37 -04:00
|
|
|
]
|
|
|
|
)
|
2024-04-30 13:25:31 -04:00
|
|
|
echo "${params.TEST_PIPELINES_PATH}/${params.BUILD_PIPELINE} #${buildResult.number} succeeded."
|
2019-06-28 20:41:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
stage('Test') {
|
|
|
|
def tasks = [:]
|
|
|
|
|
|
|
|
tasks["regular_and_custom"] = {
|
|
|
|
def regularResult
|
|
|
|
def exception = null
|
|
|
|
try {
|
|
|
|
stage("Regular Pipeline") {
|
2024-04-30 13:25:31 -04:00
|
|
|
regularResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE}",
|
2019-06-28 20:41:37 -04:00
|
|
|
propagate: true,
|
|
|
|
wait: true,
|
|
|
|
parameters: [
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
2024-04-30 13:25:31 -04:00
|
|
|
[$class: 'StringParameterValue', name: 'BUILD_JOB_NAME', value: "${params.TEST_PIPELINES_PATH}/${params.BUILD_PIPELINE}"],
|
2019-06-28 20:41:37 -04:00
|
|
|
[$class: 'StringParameterValue', name: 'BUILD_JOB_NUMBER', value: "${buildResult.number}"],
|
2020-10-16 03:10:49 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'TESTS_BRANCH', value: "${params.TESTS_BRANCH}"],
|
2019-11-22 19:40:16 -05:00
|
|
|
[$class: 'StringParameterValue', name: 'FRAMEWORK_BRANCH', value: "${params.FRAMEWORK_BRANCH}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"],
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
2019-06-28 20:41:37 -04:00
|
|
|
]
|
|
|
|
)
|
2024-04-30 13:25:31 -04:00
|
|
|
echo "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE} #${regularResult.number} succeeded."
|
2019-06-28 20:41:37 -04:00
|
|
|
}
|
|
|
|
} catch (exc) {
|
2024-04-30 13:25:31 -04:00
|
|
|
echo "${params.TEST_PIPELINES_PATH}/${params.REGULAR_PIPELINE} failed."
|
2019-06-28 20:41:37 -04:00
|
|
|
exception = exc
|
|
|
|
}
|
|
|
|
stage("Custom Pipeline") {
|
2024-04-30 13:25:31 -04:00
|
|
|
final customResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.CUSTOM_PIPELINE}",
|
2019-06-28 20:41:37 -04:00
|
|
|
propagate: true,
|
|
|
|
wait: true,
|
|
|
|
parameters: [
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
2020-10-16 03:10:49 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'TESTS_BRANCH', value: "${params.TESTS_CUSTOM_BRANCH}"],
|
2019-11-22 19:40:16 -05:00
|
|
|
[$class: 'StringParameterValue', name: 'FRAMEWORK_BRANCH', value: "${params.FRAMEWORK_BRANCH}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"],
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'SHARED_LIB_BRANCH', value: "${params.SHARED_LIB_BRANCH}"]
|
2019-06-28 20:41:37 -04:00
|
|
|
]
|
|
|
|
)
|
2024-04-30 13:25:31 -04:00
|
|
|
echo "${params.TEST_PIPELINES_PATH}/${params.CUSTOM_PIPELINE} #${customResult.number} succeeded."
|
2019-06-28 20:41:37 -04:00
|
|
|
}
|
|
|
|
if(exception != null) {
|
|
|
|
echo "Custom Pipeline passed, but Regular pipeline failed!"
|
|
|
|
throw exception
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks["fuzz_regression"] = {
|
|
|
|
stage("Fuzz Regression") {
|
2024-04-30 13:25:31 -04:00
|
|
|
final fuzzResult = build(job: "${params.TEST_PIPELINES_PATH}/${params.FUZZ_PIPELINE}",
|
2019-06-28 20:41:37 -04:00
|
|
|
propagate: true,
|
|
|
|
wait: true,
|
|
|
|
parameters: [
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NAME', value: "${JOB_NAME}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'CLAMAV_JOB_NUMBER', value: "${BUILD_NUMBER}"],
|
2020-10-16 03:10:49 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'TESTS_FUZZ_BRANCH', value: "${params.TESTS_FUZZ_BRANCH}"],
|
|
|
|
[$class: 'StringParameterValue', name: 'FUZZ_CORPUS_BRANCH', value: "${params.FUZZ_CORPUS_BRANCH}"],
|
2021-05-03 19:09:19 -07:00
|
|
|
[$class: 'StringParameterValue', name: 'VERSION', value: "${params.VERSION}"]
|
2019-06-28 20:41:37 -04:00
|
|
|
]
|
|
|
|
)
|
2024-04-30 13:25:31 -04:00
|
|
|
echo "${params.TEST_PIPELINES_PATH}/${params.FUZZ_PIPELINE} #${fuzzResult.number} succeeded."
|
2019-06-28 20:41:37 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
parallel tasks
|
|
|
|
}
|
2019-06-28 18:19:02 -04:00
|
|
|
}
|