jenkins/common.groovy
DEV_BRANCH = 'main'
STAGING_BRANCH = 'main'
PROD_BRANCH = 'main'
IS_DEV_BRANCH = env.BRANCH_NAME == DEV_BRANCH
IS_STAGING_BRANCH = env.BRANCH_NAME == STAGING_BRANCH
IS_PROD_BRANCH = env.BRANCH_NAME == PROD_BRANCH
DOCKER_ARGS = "-v ${WORKSPACE}/vets-website:/application -v ${WORKSPACE}/vagov-content:/vagov-content -v ${WORKSPACE}/content-build:/content-build --ulimit nofile=8192:8192"
IMAGE_TAG = java.net.URLDecoder.decode(env.BUILD_TAG).replaceAll("[^A-Za-z0-9\\-\\_]", "-")
DOCKER_TAG = "vets-website:" + IMAGE_TAG
def isReviewable() {
return !IS_DEV_BRANCH && !IS_STAGING_BRANCH && !IS_PROD_BRANCH
}
def shouldBail() {
// abort the job if we're not on deployable branch (usually main) and there's a newer build going now
return !IS_DEV_BRANCH &&
!IS_STAGING_BRANCH &&
!IS_PROD_BRANCH &&
!env.CHANGE_TARGET &&
currentBuild.nextBuild
}
def setup() {
stage("Setup") {
dir("vagov-content") {
checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/main']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', noTags: true, reference: '', shallow: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'va-bot', url: 'git@github.com:department-of-veterans-affairs/vagov-content.git']]]
}
dir("content-build") {
checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: '*/main']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CloneOption', noTags: true, reference: '', shallow: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'va-bot', url: 'git@github.com:department-of-veterans-affairs/content-build.git']]]
}
dir("vets-website") {
sh "mkdir -p build"
sh "mkdir -p coverage"
sh "mkdir -p temp"
dockerImage = docker.build(DOCKER_TAG)
return dockerImage
}
}
}
return this;