parent
3a3afcfd6f
commit
c72b02f99f
@ -0,0 +1,106 @@ |
||||
void checkout_project() { |
||||
checkout([ |
||||
$class: 'GitSCM', |
||||
branches: [ |
||||
[name: '*/master'] |
||||
], |
||||
doGenerateSubmoduleConfigurations: false, |
||||
extensions: [ |
||||
[$class: 'CleanBeforeCheckout'], |
||||
[$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false] |
||||
], |
||||
submoduleCfg: [], |
||||
userRemoteConfigs: [ |
||||
[credentialsId: 'gitea-jenkins', url: 'https://git.minres.com/SystemC/SystemC-Components-Test.git'] |
||||
] |
||||
]) |
||||
} |
||||
|
||||
void setup_conan_centos() { |
||||
sh""" |
||||
conan profile new default --detect --force |
||||
conan profile update settings.compiler.libcxx=libstdc++ default |
||||
""" |
||||
} |
||||
|
||||
void setup_conan_ubuntu() { |
||||
sh""" |
||||
conan profile new default --detect --force |
||||
conan profile update settings.compiler.libcxx=libstdc++11 default |
||||
""" |
||||
} |
||||
|
||||
void build_project() { |
||||
sh""" |
||||
mkdir build; cd build |
||||
cmake .. -DCMAKE_BUILD_TYPE=Release |
||||
make -j10 VERBOSE=1 |
||||
""" |
||||
} |
||||
|
||||
void test_project() { |
||||
sh 'cd build; ctest -C Debug -V -j10 ' |
||||
} |
||||
|
||||
pipeline { |
||||
agent none |
||||
options { |
||||
// using the Timestamper plugin we can add timestamps to the console log |
||||
timestamps() |
||||
skipStagesAfterUnstable() |
||||
} |
||||
|
||||
stages { |
||||
stage('SCC test pipeline') { |
||||
parallel { |
||||
stage('U18.04') { |
||||
agent {docker { image 'ubuntu-18.04' } } |
||||
stages { |
||||
stage('Ubuntu18.04: checkout') { steps { checkout_project() }} |
||||
stage('Ubuntu18.04: Conan') { steps { setup_conan_ubuntu() }} |
||||
stage('Ubuntu18.04: Build') { steps { build_project() }} |
||||
stage('Ubuntu18.04: Test') { steps { test_project() }} |
||||
} |
||||
} |
||||
stage('U20.04') { |
||||
agent {docker { image 'ubuntu-20.04' } } |
||||
stages { |
||||
stage('Ubuntu20.04: checkout') { steps { checkout_project() }} |
||||
stage('Ubuntu20.04: Conan') { steps { setup_conan_ubuntu() }} |
||||
stage('Ubuntu20.04: Build') { steps { build_project() }} |
||||
stage('Ubuntu20.04: Test') { steps { test_project() }} |
||||
} |
||||
} |
||||
stage('COS7') { |
||||
agent {docker { image 'centos7' } } |
||||
stages { |
||||
stage('CentOS7: checkout') { steps { checkout_project() }} |
||||
stage('CentOS7: conan') { steps { setup_conan_centos() }} |
||||
stage('CentOS7: build') { steps { build_project() }} |
||||
stage('CentOS7: test') { steps { test_project() }} |
||||
} |
||||
} |
||||
stage('COS8') { |
||||
agent {docker { image 'centos8' } } |
||||
stages { |
||||
stage('CentOS8: checkout') { steps { checkout_project() }} |
||||
stage('CentOS8: conan') { steps { setup_conan_ubuntu() }} |
||||
stage('CentOS8: build') { steps { build_project() }} |
||||
stage('CentOS8: test') { steps { test_project() }} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
post { |
||||
success { |
||||
echo 'SCC tests PASSED!' |
||||
} |
||||
failure { |
||||
mail to: 'stas@minres.com', |
||||
subject: "SCC Test Pipeline Failed: ${currentBuild.fullDisplayName}", |
||||
body: "Something is wrong with ${env.BUILD_URL}" |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue