You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.0 KiB
71 lines
2.0 KiB
#!groovy
|
|
|
|
node {
|
|
def deployable_branches = ["master"]
|
|
|
|
stage('Checkout') {
|
|
checkout scm
|
|
}
|
|
|
|
dockerStage('Build') {
|
|
echo "Branch is: ${env.BRANCH_NAME}"
|
|
echo "Build is: ${env.BUILD_NUMBER}"
|
|
sh('''
|
|
./develop.sh sanity
|
|
./develop.sh build prod
|
|
./develop.sh build latest
|
|
''')
|
|
}
|
|
|
|
if (deployable_branches.contains(env.BRANCH_NAME)) {
|
|
|
|
dockerStage('Publish') {
|
|
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'dockerbot',
|
|
usernameVariable: 'DOCKER_USERNAME',
|
|
passwordVariable: 'DOCKER_PASSWORD']]) {
|
|
sh("""
|
|
docker login -u "${env.DOCKER_USERNAME}" --password="${env.DOCKER_PASSWORD}"
|
|
./develop.sh push prod
|
|
./develop.sh push latest
|
|
""")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* dockerStage
|
|
*
|
|
* Custom stage that wraps the stage in timestamps and AnsiColorBuildWrapper
|
|
* Prior to exit wrfy is used to kill all running containers and cleanup.
|
|
*/
|
|
def dockerStage(String label,
|
|
List<String> artifacts=[],
|
|
List<String> testResults=[],
|
|
Closure body) {
|
|
|
|
stage(label) {
|
|
try {
|
|
timestamps {
|
|
wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm']) {
|
|
body.call()
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
currentBuild.result = 'FAILURE'
|
|
throw e
|
|
} finally {
|
|
for (artifact in artifacts) {
|
|
step([$class: 'ArtifactArchiver', artifacts: artifact, fingerprint: false, excludes: null])
|
|
}
|
|
for (testResult in testResults) {
|
|
step([$class: 'JUnitResultArchiver', testResults: testResult])
|
|
}
|
|
sh('''
|
|
/env/bin/wrfy kill-all --force
|
|
/env/bin/wrfy scrub --force
|
|
''')
|
|
}
|
|
}
|
|
}
|