106 lines
3.6 KiB
Plaintext
106 lines
3.6 KiB
Plaintext
|
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}"
|
||
|
}
|
||
|
}
|
||
|
}
|