def getBranch() { if (env.BRANCH_NAME != null && !env.BRANCH_NAME.isEmpty() ) { return env.BRANCH_NAME } else { return 'develop' } } void checkout_project() { checkout([ $class: 'GitSCM', branches: [ [name: 'refs/heads/' + getBranch()] ], extensions: [ [$class: 'CleanBeforeCheckout'], [$class: 'SubmoduleOption', disableSubmodules: false, recursiveSubmodules: true, trackingSubmodules: false, parentCredentials: true, shallow: true ] ], submoduleCfg: [], userRemoteConfigs: [ [credentialsId: 'gitea-jenkins', url: 'https://git.minres.com/SystemC/SystemC-Components-Test.git'] ] ]) } void setup_conan() { sh''' pip3 install --user "conan<2.0" pyucis conan profile new default --detect --force conan remote list | grep minres > /dev/null [ $? ] || conan remote add minres https://git.minres.com/api/packages/Tooling/conan ''' } void build_n_test_project() { sh''' cmake -S . -B build cmake --build build -j12 cmake --build build --target test ''' } 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('U22.04') { agent {docker { image 'ubuntu-22.04' } } stages { stage('Checkout') { steps { checkout_project() }} stage('Setup') { steps { setup_conan() }} stage('Build & test') { steps { build_n_test_project() }} } } stage('U20.04') { agent {docker { image 'ubuntu-20.04' } } stages { stage('Checkout') { steps { checkout_project() }} stage('Setup') { steps { setup_conan() }} stage('Build & test') { steps { build_n_test_project() }} } } stage('COS7') { agent {docker { image 'centos7' } } stages { stage('Checkout') { steps { checkout_project() }} stage('Setup') { steps { setup_conan() }} stage('Build & test') { steps { build_n_test_project() }} } } stage('RCK8') { agent {docker { image 'rockylinux8' } } stages { stage('Checkout') { steps { checkout_project() }} stage('Setup') { steps { setup_conan() }} stage('Build & test') { steps { build_n_test_project() }} } } } } } post { success { rocketSend ":thumbsup: SCC test run passed, results at ${env.RUN_DISPLAY_URL} " } failure { rocketSend ":thumbsdown: SCC test failed, please check ${env.RUN_DISPLAY_URL} " emailext recipientProviders: [culprits(), requestor()], subject: "SCC Test Pipeline Failed: ${currentBuild.fullDisplayName}", body: """

Build Status: ${currentBuild.currentResult}

Check logs at Build Console Logs or at Overview

""" } } }