Some checks failed
Tests / Clang total: 1776, failed: 232, passed: 1544
Tests / SIMD fallback total: 1776, failed: 232, passed: 1544
Tests / 32-bit versions total: 1776, failed: 232, passed: 1544
Tests / Release [gcc] total: 1776, failed: 232, passed: 1544
Tests / Release [gcc,aarch64] total: 1327, failed: 116, passed: 1211
Tests / Coverage total: 1333, failed: 233, passed: 1100
weaselab/conflict-set/pipeline/head There was a failure building this commit
Closes #30 This is achieved by running libfuzzer with USE_32_BIT_VERSIONS={OFF,ON}, and then combining the corpora. I suspect that the problem earlier was that we only had the 32 bit corpus but were measuring coverage for 64 bit in jenkins.
137 lines
4.7 KiB
Groovy
137 lines
4.7 KiB
Groovy
def CleanBuildAndTest(String cmakeArgs) {
|
|
sh """
|
|
export CCACHE_DIR=/ccache
|
|
rm -rf build
|
|
mkdir build
|
|
cd build
|
|
cmake .. -G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ${cmakeArgs}
|
|
ninja
|
|
ccache -s
|
|
"""
|
|
catchError {
|
|
sh '''
|
|
cd build
|
|
ctest --no-compress-output --test-output-size-passed 100000 --test-output-size-failed 100000 -T Test -j `nproc` --timeout 90
|
|
zstd Testing/*/Test.xml
|
|
'''
|
|
}
|
|
xunit tools: [CTest(pattern: 'build/Testing/*/Test.xml')], reduceLog: false, skipPublishingChecks: false
|
|
minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/Testing/*/Test.xml.zst', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}/'
|
|
}
|
|
|
|
pipeline {
|
|
agent any
|
|
stages {
|
|
stage('Pre-commit') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
script {
|
|
env.HOME = env.WORKSPACE
|
|
}
|
|
sh 'pre-commit run --all-files --show-diff-on-failure'
|
|
}
|
|
}
|
|
stage('Clang') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("")
|
|
recordIssues(tools: [clang()])
|
|
}
|
|
}
|
|
stage('SIMD fallback') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("-DUSE_SIMD_FALLBACK=ON")
|
|
}
|
|
}
|
|
stage('32-bit versions') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("-DUSE_32_BIT_VERSIONS=ON")
|
|
}
|
|
}
|
|
stage('Release [gcc]') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS=-DNVALGRIND")
|
|
recordIssues(tools: [gcc()])
|
|
sh '''
|
|
cd build
|
|
cpack -G DEB
|
|
cpack -G RPM
|
|
'''
|
|
sh '''
|
|
cd paper
|
|
make
|
|
'''
|
|
minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/*.deb,build/*.rpm,paper/*.pdf', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}/'
|
|
}
|
|
}
|
|
stage('Release [gcc,aarch64]') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("-DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake -DCMAKE_CXX_FLAGS=-DNVALGRIND")
|
|
sh '''
|
|
cd build
|
|
cpack -G DEB
|
|
cpack -G RPM
|
|
'''
|
|
minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/*.deb,build/*.rpm', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}'
|
|
}
|
|
}
|
|
stage('Coverage') {
|
|
agent {
|
|
dockerfile {
|
|
args '-v /home/jenkins/ccache:/ccache'
|
|
reuseNode true
|
|
}
|
|
}
|
|
steps {
|
|
CleanBuildAndTest("-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_FLAGS=--coverage -DCMAKE_CXX_FLAGS=--coverage -DCMAKE_BUILD_TYPE=Debug")
|
|
sh '''
|
|
gcovr -f ConflictSet.cpp --cobertura > build/coverage.xml
|
|
'''
|
|
recordCoverage qualityGates: [[criticality: 'NOTE', metric: 'MODULE']], tools: [[parser: 'COBERTURA', pattern: 'build/coverage.xml']]
|
|
sh '''
|
|
gcovr -f ConflictSet.cpp --fail-under-line 100 > /dev/null
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
emailext mimeType: 'text/html', body: '${SCRIPT, template="groovy-html.template"}', subject: "${env.JOB_NAME} - Build# ${env.BUILD_NUMBER} - ${currentBuild.currentResult}", to: 'andrew@weaselab.dev'
|
|
}
|
|
}
|
|
}
|