I wanted to setup Jenkins' jobs to update the different stages (acceptance, qa, uat) in our build pipeline.
To achieve that I created 3 different GAE's applications - one for each stage - and 4 Jenkins jobs: 1 template which holds the common steps and 3 others for the respective stages.
The first step of the template job updates appengine-web.xml target application and version based on parameters passed to the job.
See the groovy script below:
import groovy.xml.StreamingMarkupBuilder //getting parameters values from environment variables def env = System.getenv() def workspace = env["WORKSPACE"] def applicationName = env["TARGET_APPLICATION_NAME"] def versionName = env["TARGET_VERSION_NAME"] def ant = new AntBuilder() ant.echo(message:"Opening $workspace/war/WEB-INF/appengine-web.xml") def file = new File("$workspace/war/WEB-INF/appengine-web.xml") def root = new XmlSlurper().parse(file) ant.echo(message:"Updating appengine-web.xml with application: $applicationName and version: $versionName") root.application=applicationName root.version=versionName def outputBuilder = new StreamingMarkupBuilder() String result = outputBuilder.bind{ mkp.declareNamespace("": "http://appengine.google.com/ns/1.0") mkp.yield root } ant.echo(message:"Writing appengine-web.xml") file.write(result)
Nenhum comentário:
Postar um comentário