| buildscript { |
| repositories { |
| jcenter() |
| } |
| dependencies { |
| classpath 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.2' |
| } |
| } |
| import groovyx.net.http.RESTClient |
| |
| |
| preparePublication { |
| doFirst { |
| def client = new RESTClient() |
| client.uri = 'https://oss.sonatype.org/service/local/staging/profiles/169b36e205a64e/start' |
| client.auth.basic(username, password) |
| |
| def params = [ |
| body: "<promoteRequest><data><description>Repository for publishing $version</description></data></promoteRequest>", |
| contentType: groovyx.net.http.ContentType.XML, |
| requestContentType: groovyx.net.http.ContentType.XML |
| ] |
| |
| def rootNode |
| try { |
| def serverResponse = client.post(params) |
| rootNode = serverResponse.getData() |
| } catch (groovyx.net.http.HttpResponseException e) { |
| throw new GradleException(e.getResponse().getData().toString(), e) |
| } |
| |
| def repoId = rootNode.data.stagedRepositoryId.text() |
| ext.repoUrl = "https://oss.sonatype.org/service/local/staging/deployByRepositoryId/$repoId/".toString() |
| println "##teamcity[setParameter name='system.deploy-url' value='${repoUrl}']" |
| } |
| } |
| |
| |