62 lines
1.8 KiB
Groovy
62 lines
1.8 KiB
Groovy
pipeline {
|
|
agent {node "Build108"}
|
|
environment {
|
|
MSBUILD_PATH = "\"${tool 'visual_studio_default'}\""
|
|
BUILD_TOOLS_DIR = "BuildTools"
|
|
}
|
|
parameters {
|
|
string(name: 'HASH', description: 'Commit hash to build on. (Blank will build HEAD)')
|
|
}
|
|
stages {
|
|
// Need this stage since assembla script which comments on tickets is tracked on perforce
|
|
stage ("Build Tools Sync") {
|
|
steps {
|
|
dir ("./${BUILD_TOOLS_DIR}") {
|
|
checkout changelog: false, poll: false, scm: scmGit(
|
|
branches: [[name: '*/main']],
|
|
extensions: [cloneOption(noTags: false, reference: '', shallow: true)],
|
|
userRemoteConfigs: [[credentialsId: 'm_github', url: 'git@github.com:TrackIR/BuildTools.git']]
|
|
)
|
|
}
|
|
}
|
|
}
|
|
stage ("Notify Assembla of Commit") {
|
|
when {
|
|
not {
|
|
expression {
|
|
return currentBuild.changeSets.isEmpty();
|
|
}
|
|
}
|
|
}
|
|
environment {
|
|
SECRET_FILE = credentials('Assembla_autobuilds')
|
|
}
|
|
steps {
|
|
bat "python ${BUILD_TOOLS_DIR}/assembla.py --dir=${WORKSPACE} --sha=${GIT_COMMIT} --branch=${GIT_BRANCH}"
|
|
}
|
|
}
|
|
stage ("Commit Checkout") {
|
|
when {
|
|
expression {
|
|
return params.HASH != ''
|
|
}
|
|
}
|
|
steps {
|
|
checkout scmGit(branches: [[name: "${params.HASH}"]], extensions: [], userRemoteConfigs: [])
|
|
}
|
|
}
|
|
}
|
|
|
|
// email commit author(s) on failure
|
|
post {
|
|
failure {
|
|
emailext body: '${JOB_NAME} - ${GIT_REVISION} - ${BUILD_STATUS}:\nCheck console output at ${BUILD_URL} to view the results.\n\n${BUILD_LOG}',
|
|
recipientProviders: [brokenBuildSuspects()],
|
|
subject: '${JOB_NAME} - ${GIT_REVISION} - ${BUILD_STATUS}!'
|
|
}
|
|
cleanup {
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|