Chris Pomeroy
2020-10-11 5e5b8c735a13c5a612fd5ab3a8b998124559e3f7
Changed jenkinsfile from scripted to DSL
1 files modified
97 ■■■■ changed files
Jenkinsfile 97 ●●●● patch | view | raw | blame | history
Jenkinsfile
@@ -1,59 +1,66 @@
node('pi-docker-agent') {
    def customImage
    def discordUrl = "https://discordapp.com/api/webhooks/764667082272145418/vorf2JdFG47WAmQP3yZhgHH12wW_qUXG0bS0SG8INLYVwU0HcDFajq9doaDgi_hnI00-"
    def BUILDDATE = sh(script: "echo `date --rfc-3339=date`", returnStdout: true).trim()
def discordUrl = "https://discordapp.com/api/webhooks/764667082272145418/vorf2JdFG47WAmQP3yZhgHH12wW_qUXG0bS0SG8INLYVwU0HcDFajq9doaDgi_hnI00-"
def BUILDDATE = sh(script: "echo `date --rfc-3339=date`", returnStdout: true).trim()
def customImage
    stage ('Checkout source'){
        checkout scm
    }
    stage ('Build image'){
        steps {
            //Build the image
            customImage = docker.build("jenkins:${BUILDDATE}-build-${env.BUILD_ID}")
        }
        post {
            failure {
                discordSend description:" Building image failed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
            }
        }
    }
    // stage('Test Image'){
    //     options
    //     customImage.inside {
    //         sh 'curl -s -o /dev/null -w "%{http_code}" localhost:8080/login'
    //     }
    // }
    stage('Push Image'){
        steps {
            docker.withRegistry('https://dev-reg.darkurthe.net'){
                customImage.push()
                customImage.push("latest")
            }
        }
        post {
            failure {
                discordSend description: " Pushing image failed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
            }
pipeline {
    agent {
        node {
            label 'pi-docker-agent'
        }
    }
    stage('Deploy Image'){
        steps {
            sh "docker service update --force --image dev-reg.darkurthe.net/jenkins:${BUILDDATE}-build-${env.BUILD_ID}"
    options {
        timestamps()
        ansiColor("xterm")
    }
    stages {
        stage('Checkout Source'){
            steps {
                checkout scm
            }
            post{
                failure {
                    discordSend description:" Failed to checkout source code ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
                }
            }
        }
        post {
            failure {
                discordSend description: " Deploying image failed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
        stage('Build Image'){
            steps {
                script {
                    docker.build("jenkins:${BUILDDATE}-build-${env.BUILD_ID}")
                }
            }
            post{
                failure {
                    discordSend description:" Building image failed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
                }
            }
        }
        stage('Push Image to repository'){
            steps {
                script {
                    docker.withRegistry('https://dev-reg.darkurthe.net'){
                        customImage.push()
                        customImage.push("latest")
                    }
                }
            }
            post{
                failure {
                    discordSend description: " Pushing image failed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
                }
            }
        }
    }
    post {
    post{
        success {
            discordSend description: " New Jenkins image has been deployed ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
            discordSend description: " New Jenkins image has been pushed to the registry ", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
        }
        unsuccessful{
            discordSend description: " There was a problem with the Jenkins docker image.\nPlease review the build", footer: "Jenkins docker image", link: "${env.BUILD_URL}", title: "${JOB_NAME}", result: "${currentBuild.currentResult}", webhookURL: "${discordUrl}"
        }
    }
}
}