0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 12:12:15 +02:00
openvpn3/Jenkinsfile
Lev Stipakov 832cf7f2ca Report build status to Bitbucket
Also send email on failure/status change.

OVPN3-38

Signed-off-by: Lev Stipakov <lev@openvpn.net>
2017-08-10 15:09:05 +03:00

66 lines
2.0 KiB
Groovy

def checkout() {
step([$class: 'WsCleanup'])
checkout([
$class: 'GitSCM',
branches: [[name: '*/${BRANCH}']],
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'core']],
userRemoteConfigs: [[credentialsId: 'jenkins', url: 'git@bitbucket.org:openvpntechnologies/ovpn3-core.git']]
])
}
def build_linux() {
checkout()
withEnv(["O3=$WORKSPACE"]) {
dir("$O3/core/test/ovpncli") {
sh 'ECHO=1 PROF=linux ASIO_DIR=~/asio MTLS_SYS=1 LZ4_SYS=1 NOSSL=1 OUTBIN=cli_mbed $O3/core/scripts/build cli'
sh 'ECHO=1 PROF=linux ASIO_DIR=~/asio OPENSSL_SYS=1 LZ4_SYS=1 OUTBIN=cli_ssl $O3/core/scripts/build cli'
}
}
archiveArtifacts 'core/test/ovpncli/cli_mbed,core/test/ovpncli/cli_ssl'
}
def build_windows() {
checkout()
dir('core\\win') {
bat 'copy c:\\Jenkins\\parms_local.py'
bat 'python buildep.py'
bat 'python build.py'
}
archiveArtifacts 'core/win/cli.exe,core/win/cli.obj'
}
stage('Build') {
try {
bitbucketStatusNotify(buildState: 'INPROGRESS')
parallel(
linux: {
node('linux_slave') {
build_linux()
}
},
windows: {
node('windows_slave') {
build_windows()
}
}
)
currentBuild.result = 'SUCCESS'
bitbucketStatusNotify(buildState: 'SUCCESSFUL')
}
catch (Exception e) {
currentBuild.result = 'FAILURE'
bitbucketStatusNotify(buildState: 'FAILED')
throw e
}
finally {
// send mail on every failure or status change
if ((currentBuild.result == 'FAILURE') || (currentBuild.previousBuild.result == 'FAILURE')) {
emailext(
body: '$DEFAULT_CONTENT',
subject: '$DEFAULT_SUBJECT',
recipientProviders: [[$class: 'RequesterRecipientProvider'], [$class: 'CulpritsRecipientProvider']]
)
}
}
}