Skip to content

Instantly share code, notes, and snippets.

@crashbell
Created March 19, 2017 15:10
Show Gist options
  • Save crashbell/d42e6b800e83c94e3ea4ffdb9b363b23 to your computer and use it in GitHub Desktop.
Save crashbell/d42e6b800e83c94e3ea4ffdb9b363b23 to your computer and use it in GitHub Desktop.

Revisions

  1. crashbell created this gist Mar 19, 2017.
    36 changes: 36 additions & 0 deletions multiple-servers-Jenkinsfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    def servers = ['server1', 'server2']

    def version = "1.0.0-${env.BUILD_ID}"

    stage 'Build, UT, IT'
    node {
    checkout scm
    env.PATH = "${tool 'Maven'}/bin:${env.PATH}"
    withEnv(["PATH+MAVEN=${tool 'Maven'}/bin"]) {
    sh "mvn -e org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=$version -DgenerateBackupPoms=false"
    sh 'mvn -e clean deploy'
    sh 'mvn -e scm:tag'
    }
    }


    def nodes = [:]
    for (int i = 0; i < servers.size(); i++) {
    def server = servers.get(i)
    nodes["$server"] = {
    stage "Deploy to INT ($server)"
    node {
    sshagent(['SOME-ID']) {
    sh """
    ssh ${server}.example.com <<END
    hostname
    /apps/stop.sh
    yum -y update-to my-app.noarch
    /apps/start.sh
    END""".stripIndent()
    }
    }
    }
    }

    parallel nodes