ClaptrapBot/Jenkinsfile

53 lines
1.7 KiB
Plaintext
Raw Normal View History

2018-02-18 12:13:50 +01:00
node {
def app
stage('Clone') { // for display purposes
2018-03-01 13:10:44 +01:00
// Get some code from a GitHub repository
echo env.BRANCH_NAME
2018-03-01 13:08:55 +01:00
script {
2018-03-01 13:10:44 +01:00
if (env.BRANCH_NAME == 'master') {
git url: 'https://github.com/BrokenFire/BrokenDiscordBot.git', branch: 'master'
} else {
git url: 'https://github.com/BrokenFire/BrokenDiscordBot.git', branch: 'devel'
}
2018-03-01 13:08:55 +01:00
}
2018-02-18 12:13:50 +01:00
}
2018-03-01 13:17:32 +01:00
stage('Gradle Build'){
script {
if (env.BRANCH_NAME == 'master') {
build job: 'Bot Discord Gradle', wait: true
} else {
build job: 'Bot Discord Gradle devel', wait: true
}
}
2018-03-01 12:10:30 +01:00
}
2018-03-01 17:01:29 +01:00
stage('Build Docker image') {
2018-02-18 12:13:50 +01:00
/* This builds the actual image; synonymous to
* docker build on the command line */
2018-03-01 16:40:05 +01:00
app = docker.build("brokenfire/brokendiscordbot",'--build-arg BUILD_NBR=${BUILD_NUMBER} --build-arg BRANCH_NAME=${BRANCH_NAME} --rm=true .')
2018-02-18 12:13:50 +01:00
}
2018-03-01 17:01:29 +01:00
stage('Push Docker image') {
2018-02-18 12:13:50 +01:00
/* Finally, we'll push the image with two tags:
* First, the incremental build number from Jenkins
* Second, the 'latest' tag.
* Pushing multiple tags is cheap, as all the layers are reused. */
2018-03-01 19:58:45 +01:00
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'docker-hub-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
2018-03-01 20:00:44 +01:00
sh 'docker login -u $USERNAME -p $PASSWORD'
2018-03-01 19:53:51 +01:00
script {
if (env.BRANCH_NAME == 'master') {
app.push()
} else {
app.push("devel")
}
}
2018-03-01 16:17:13 +01:00
}
2018-03-01 13:04:08 +01:00
2018-02-18 12:13:50 +01:00
2018-03-01 19:53:51 +01:00
2018-02-18 12:13:50 +01:00
}
stage('Cleaning'){
sh "docker image prune -f"
2018-02-18 12:13:50 +01:00
}
}