From d3f0d8dd704a5500be641b693dcf1e361ec59f47 Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Mon, 6 Dec 2021 18:38:01 +0000 Subject: [PATCH] update Jenkinsfile for all configurations --- Jenkinsfile | 606 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 587 insertions(+), 19 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1883f43a..3dbef5b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,22 +1,590 @@ pipeline { - agent { - node { - label 'x86' - } - - } - stages { - stage('Release, SSE') { - agent { - node { - label 'x86' + agent none + stages { + stage("Build") { + failFast true + parallel { + stage("Release/SSE") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-SSE', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=no -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-release-SSE/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-release-SSE/bin/unit-hyperscan' + } + } + } + } + stage("Release/AVX2") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-AVX2', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-release-AVX2/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-release-AVX2/bin/unit-hyperscan' + } + } + } + } + stage("Release/AVX512") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-AVX512', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-release-AVX512/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-release-AVX512/bin/unit-hyperscan' + } + } + } + } + stage("Release/FAT") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-fat', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=yes', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Test") { + steps { + sh 'build-release-fat/bin/unit-hyperscan' + } + } + } + } + stage("Debug/SSE") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-SSE', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=no -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-debug-SSE/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-debug-SSE/bin/unit-hyperscan' + } + } + } + } + stage("Debug/AVX2") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-AVX2', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-debug-AVX2/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-debug-AVX2/bin/unit-hyperscan' + } + } + } + } + stage("Debug/AVX512") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-AVX512', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-debug-AVX512/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-debug-AVX512/bin/unit-hyperscan' + } + } + } + } + stage("Debug/FAT") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-fat', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=yes', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Test") { + steps { + sh 'build-debug-fat/bin/unit-hyperscan' + } + } + } + } + stage("Release/ARM") { + agent { label "arm" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-arm', buildType: 'Release', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-release-arm/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-release-arm/bin/unit-hyperscan' + } + } + } + } + stage("Debug/ARM") { + agent { label "arm" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-arm', buildType: 'Debug', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-debug-arm/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-debug-arm/bin/unit-hyperscan' + } + } + } + } + stage("Release/Power") { + agent { label "power" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-release-power', buildType: 'Release', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-release-power/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-release-power/bin/unit-hyperscan' + } + } + } + } + stage("Debug/Power") { + agent { label "power" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-power', buildType: 'Debug', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-debug-power/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-debug-power/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/SSE") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-SSE', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=no -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-release-SSE/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-release-SSE/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/AVX2") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-AVX2', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-release-AVX2/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-release-AVX2/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/AVX512") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-AVX512', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-release-AVX512/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-release-AVX512/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/FAT") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-fat', buildType: 'Release', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=yes', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Test") { + steps { + sh 'build-clang-release-fat/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/SSE") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-debug-SSE', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=no -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-debug-SSE/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-debug-SSE/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/AVX2") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-debug-AVX2', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=no -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-debug-AVX2/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-debug-AVX2/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/AVX512") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-debug-AVX512', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=no', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-debug-AVX512/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-debug-AVX512/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/FAT") { + agent { label "x86" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-debug-fat', buildType: 'Debug', cleanBuild: true, cmakeArgs: '-DBUILD_AVX2=yes -DBUILD_AVX512=yes -DFAT_RUNTIME=yes', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Test") { + steps { + sh 'build-clang-debug-fat/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/ARM") { + agent { label "arm" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-arm', buildType: 'Release', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-release-arm/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-release-arm/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/ARM") { + agent { label "arm" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-debug-arm', buildType: 'Debug', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-debug-arm/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-debug-arm/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Release/Power") { + agent { label "power" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-release-power', buildType: 'Release', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-release-power/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-release-power/bin/unit-hyperscan' + } + } + } + } + stage("Clang-Debug/Power") { + agent { label "power" } + stages { + stage("Git checkout") { + steps { + checkout([$class: 'GitSCM', branches: [[name: '${sha1}']], extensions: [], userRemoteConfigs: [[refspec: '+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*', url: 'https://github.com/VectorCamp/vectorscan.git']]]) + } + } + stage("Build") { + steps { + cmakeBuild buildDir: 'build-clang-debug-power', buildType: 'Debug', cleanBuild: true, cmakeArgs: '', installation: 'InSearchPath', steps: [[envVars: 'CC=clang CXX=clang++', args: '--parallel 4', withCmake: true]] + } + } + stage("Unit Test") { + steps { + sh 'build-clang-debug-power/bin/unit-internal' + } + } + stage("Test") { + steps { + sh 'build-clang-debug-power/bin/unit-hyperscan' + } + } + } + } + } } - - } - steps { - sh 'mkdir build-release-SSE && cmake -DCMAKE_BUILD_TYPE=Release -C build-release-SSE' - } } - - } -} \ No newline at end of file +}