playground/jenkins-pipeline/Jenkinsfile.001

116 lines
2.7 KiB
Plaintext

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...."
}
}
}
}