pipeline { agent none environment { THIS_PROJECT = 'hio' THIS_SVN_URL = "https://code.miflux.com/svn/hio/trunk/${THIS_PROJECT}" } stages { stage('Pre-builds') { matrix { axes { axis { name 'BUILD_TYPE' values 'debug-shared', 'debug-static', 'release-shared', 'release-static' } axis { name 'PLATFORM' //values 'fedora' , 'freebsd' values 'fedora' } } //excludes { // exclude { // axis { // name 'BUILD_TYPE' // value 'debug-shared' // } // axis { // name 'PLATFORM' // value 'fedora' // } // } //} //agent any agent { label "${PLATFORM}" } stages { stage('Setup') { steps { script { if (env.BUILD_TYPE == 'debug-shared') { env.CONFIG_OPTS = '--enable-debug=yes --enable-static=no --enable-shared=yes' } else if (env.BUILD_TYPE == 'debug-static') { env.CONFIG_OPTS = '--enable-debug=yes --enable-static=yes --enable-shared=no' } else if (env.BUILD_TYPE == 'release-shared') { env.CONFIG_OPTS = '--enable-debug=no --enable-static=no --enable-shared=yes' } else if (env.BUILD_TYPE == 'release-static') { env.CONFIG_OPTS = '--enable-debug=no --enable-static=yes --enable-shared=no' } else { echo "Invalid Build Type - ${env.BUILD_TYPE}" sh "exit 1" } } } } stage('Checkout') { steps { echo "Checking out for ${BUILD_TYPE} on ${PLATFORM} - ${CONFIG_OPTS}" checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[ depthOption: 'infinity', ignoreExternalsOption: true, //local: 'local-dir', remote: "${THIS_SVN_URL}" ]], workspaceUpdater: [$class: 'UpdateUpdater'] ]) } } stage('Build') { steps { echo "Do build for ${BUILD_TYPE} on ${PLATFORM}" sh "ls -laF && cd ${THIS_PROJECT} && touch -r * */* && ./configure ${CONFIG_OPTS} && make" } } stage('Test') { steps { echo "Do Test for ${BUILD_TYPE} on ${PLATFORM}" sh "cd ${THIS_PROJECT} && make check" } } } } } stage('RPM build') { agent { label "fedora" } steps { echo "BUILD THE FINAL RPM...." } } } }