annotate init70-git.gradle @ 328:def784e473ec

wrap in unsecure uri
author Marc Davis <davis@ssdt-ohio.org>
date Sat, 25 Feb 2023 21:30:15 -0500
parents 131275ef326a
children 70ea30cbe883
rev   line source
311
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
1 import groovy.transform.Sortable
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
2 import groovy.transform.ToString
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
3 import groovy.transform.TupleConstructor
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
4 import org.gradle.util.GradleVersion
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
5
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
6 buildscript {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
7 repositories {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
8 maven { url 'https://docker.ssdt.io/artifactory/ssdt-repo' }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
9 maven { url 'https://docker.ssdt.io/artifactory/gradle-plugins' }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
10 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
11 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
12
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
13 // buildScan { termsOfServiceUrl = 'https://gradle.com/terms-of-service'; termsOfServiceAgree = 'yes' }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
14
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
15 final GradleVersion gradleCurrent = GradleVersion.current()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
16 final GradleVersion gradleV70 = GradleVersion.version('7.2')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
17
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
18 if (gradleCurrent < gradleV70) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
19 throw new RuntimeException("This init script requires Gradle version 7.2 or higher (bugs in earlier version of Gradle 7.0 and 7.1)")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
20 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
21
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
22 gradle.ext.ssdtDevelkitLocation = gradle.ext.has('ssdtDevelkitLocation') ? gradle.ssdtDevelkitLocation : 'http://hg.ssdt-ohio.org/browse/public/develkit'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
23
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
24 ant.property(file: System.getProperty('user.home') + "/.ssdt/private.properties")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
25 gradle.ext.ivyUserDir = ant.properties['ivy.default.ivy.user.dir'] ?: System.getProperty('user.home') + "/.ivy2"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
26
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
27 gradle.ext.ssdtProjectId = System.getenv('bamboo_project_id') ?: rootProject.name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
28
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
29 gradle.addListener(new ArtifactoryGradleSettings())
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
30
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
31 def hostname
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
32 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
33 hostname = "hostname".execute().text.toLowerCase().readLines().first()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
34 } catch (e) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
35 hostname = 'unknown'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
36 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
37
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
38 gradle.ext.bambooBuild = System.getenv().any {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
39 it.key.toLowerCase().contains('bamboo')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
40 } || hostname?.startsWith('ssdt-ba')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
41
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
42 if (!rootProject.hasProperty("bambooLocalBuild")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
43 gradle.ext.bambooLocalBuild = false
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
44 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
45 gradle.ext.bambooLocalBuild = rootProject.bambooLocalBuild.toBoolean()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
46 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
47
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
48 if (gradle.bambooLocalBuild) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
49 println "Bamboo local build active"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
50 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
51
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
52 gradle.ext.bambooPlan = (System.getenv('BAMBOO_PLAN') ?: 'UNKNOWN-UNKNOWN-JOB1').split('-')[0..1].join('-')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
53 logger.info "Bamboo plan: ${gradle.bambooPlan}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
54
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
55 gradle.ext.buildTimestamp = System.currentTimeMillis().toString().padLeft(14, '0')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
56
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
57 gradle.ext.hgRepositoryUrl = ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
58
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
59 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
60 gradle.ext.hgRepositoryUrl = ("hg path".execute().text.split('=') ?: ['', ''])[1].trim()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
61 } catch (e) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
62 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
63
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
64 def springModuleTranslator = [
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
65 'spring-transaction': 'spring-tx',
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
66 'spring-web-servlet': 'spring-webmvc',
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
67 ].withDefault { it }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
68
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
69 gradle.ext.normalizeSpring = { DependencyResolveDetails details ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
70 if (details.requested.group == 'org.springframework' && details.requested.name.startsWith('org.springframework.')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
71 def shortName = springModuleTranslator[details.requested.name.replace('org.springframework.', 'spring-').replace('.', '-')]
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
72 details.useTarget(group: 'org.springframework', name: shortName, version: details.requested.version)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
73 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
74 if (details.requested.group == 'org.springframework.security' && details.requested.name.startsWith('org.springframework.')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
75 def shortName = springModuleTranslator[details.requested.name.replace('org.springframework.', 'spring-').replace('.', '-')]
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
76 details.useTarget("${details.requested.group}:$shortName:${details.requested.version}")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
77 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
78 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
79
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
80 gradle.ext.runtimeInfo = new RuntimeInfo()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
81
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
82
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
83 if (System.env.DOCKER_HOST ) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
84 if (System.env.DOCKER_HOST.contains('tcp:')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
85 gradle.ext.dockerEngineUrl = "https:${System.env.DOCKER_HOST?.minus('tcp:')}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
86 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
87 gradle.ext.dockerEngineUrl = System.env.DOCKER_HOST
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
88 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
89
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
90 setBranchInfo()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
91
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
92 loadEnvironments()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
93
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
94 gradle.environment.put('hgRepositoryUrl', gradle.hgRepositoryUrl)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
95 gradle.environment.put('branchName', gradle.branch.name)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
96 gradle.environment.put('branchStream', gradle.branch.stream)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
97 gradle.environment.put('branchHash', gradle.branch.hash)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
98
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
99
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
100 def cacheTimeout = 60 * 60 * 8
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
101 if (gradle.environment['dependencyTimeout']) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
102 cacheTimeout = gradle.environment['dependencyTimeout'] as Integer
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
103 println "setting changing dependency timeout to $cacheTimeout seconds"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
104 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
105
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
106 gradle.ext.cacheTimeout = cacheTimeout
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
107
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
108 rootProject.ext.indyCapable = {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
109 boolean capable = true
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
110 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
111 Class.forName('java.lang.invoke.MethodHandle')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
112 } catch (e) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
113 capable = false
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
114 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
115 capable && !rootProject.hasProperty('skipIndy')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
116 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
117
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
118 rootProject.ext.useIndy = {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
119 boolean indy = false
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
120 // first, check if a system property activates indy support
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
121 indy |= System.hasProperty('indy') && Boolean.valueOf(System.getProperty('indy'))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
122
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
123 // check ssdt environment for indy property.
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
124 indy |= (gradle.environment.indy) ? gradle.environment.indy.toBoolean() : false
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
125
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
126 // check if the main project has an extension property setting indy (-Pindy).
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
127 if (rootProject.hasProperty('indy')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
128 indy = (Boolean.valueOf(rootProject.indy))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
129 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
130
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
131 // set the groovy runtime system property to ensure forked junit test will get the indy flag properly
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
132 if (indy && rootProject.indyCapable()) System.setProperty("groovy.target.indy", "true")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
133
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
134 indy && rootProject.indyCapable()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
135 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
136
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
137 println "Indy available: ${rootProject.indyCapable()} enabled: ${rootProject.useIndy()}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
138
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
139 if (gradle.bambooBuild) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
140
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
141 file('build-number.txt').text = "build.number=${gradle.branch.buildNumber ?: -1 }\n"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
142 logger.info "applying SSDT artifactory Gradle Settings (bamboo: $gradle.bambooBuild host: $hostname)"
328
def784e473ec wrap in unsecure uri
Marc Davis <davis@ssdt-ohio.org>
parents: 326
diff changeset
143 apply from: resources.text.fromInsecureUri("${gradle.ssdtDevelkitLocation}/artifactory70.gradle")
311
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
144 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
145
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
146 if (!rootProject.hasProperty('disableMetrics')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
147 apply from: resources.text.fromInsecureUri("${gradle.ssdtDevelkitLocation}/metrics70.gradle")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
148 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
149
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
150 rootProject.afterEvaluate { r ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
151 if (gradle.bambooBuild && r.hasProperty('requireJavaVersion')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
152 gradle.runtimeInfo.requireJava( r.getProperty('requireJavaVersion') )
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
153 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
154 if (!gradle.bambooBuild && !r.file('.idea/copyright/ODE.xml').exists() ) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
155 updateCopyrightProfile(r)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
156 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
157 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
158
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
159 def findComponent(project, name) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
160 project.component.find { it.@name == name }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
161 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
162
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
163 wrapper {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
164 distributionType = org.gradle.api.tasks.wrapper.Wrapper.DistributionType.ALL
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
165 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
166
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
167 allprojects {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
168
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
169 configurations.all {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
170 resolutionStrategy.cacheChangingModulesFor gradle.cacheTimeout, 'seconds'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
171 resolutionStrategy.cacheDynamicVersionsFor gradle.cacheTimeout, 'seconds'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
172 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
173 configurations.all {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
174 resolutionStrategy.eachDependency { DependencyResolveDetails details ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
175 if (details.requested.group == 'org.ssdt_ohio' && !details.requested.version ) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
176 details.useVersion( "latest.${gradle.branch.defaultDependencyStatus}" )
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
177 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
178 if (details.requested.version == 'default') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
179 details.useVersion("latest.${gradle.branch.defaultDependencyStatus}" )
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
180 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
181 if (project.hasProperty("overrideCommon")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
182 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.contains('ssdt.common.')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
183 details.useVersion(project.overrideCommon)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
184 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
185 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
186 if (project.hasProperty("overrideVui")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
187 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.startsWith('vui.')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
188 details.useVersion(project.overrideVui)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
189 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
190 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
191 if (project.hasProperty("overrideUsasCore")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
192 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.startsWith('usas.') && !details.requested.name.startsWith('usas.vui')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
193 details.useVersion(project.overrideUsasCore)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
194 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
195 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
196 if (project.hasProperty("overrideUspsCore")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
197 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.startsWith('usps.') && !details.requested.name.startsWith('usps.vui')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
198 details.useVersion(project.overrideUspsCore)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
199 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
200 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
201
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
202 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
203 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
204
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
205 task cleanLocal(description: "removes all artifacts from developer's local repository") {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
206
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
207 doLast {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
208 def local = project.repositories.find { it.name == 'local' }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
209 if (local) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
210 logger.info "removing local repo: $it"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
211 new File(System.properties['user.home'] + "/.ssdt/local-repo").deleteDir()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
212 def localDir = new File(gradle.ivyUserDir + "/local")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
213 localDir.deleteDir()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
214 logger.info "verifying removal of local repo"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
215 if (localDir.exists()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
216 throw new org.gradle.api.GradleException("Unable to clean ${localDir}. Files may be locked by another process.")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
217 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
218 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
219 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
220 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
221
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
222 cleanLocal.onlyIf {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
223 project.repositories.any { it.name == 'local' }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
224 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
225
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
226 project.ext.previousBuildenv = project.file('build/buildenv.txt').exists() ? project.file('build/buildenv.txt').text : 'none'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
227
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
228 tasks.addRule("Pattern: <environment>As[Test]Properties: Generates <environment>.properties as resource or Test resource") { String taskName ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
229 if ((taskName - 'Test').endsWith("AsProperties") && !taskName.startsWith('clean')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
230 // def t = taskName.contains('Test') ? processTestResources.destinationDir : processResources.destinationDir
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
231 def t = taskName.contains('Test') ? sourceSets.test.output.resourcesDir : sourceSets.main.output.resourcesDir
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
232 def e = (taskName - 'Test' - 'AsProperties').capitalize()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
233 task(taskName) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
234 ext.outputDir = t
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
235 ext.propertyFile = "${e.toLowerCase()}.properties"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
236 ext.buildenv = project.file('build/buildenv.txt')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
237 inputs.files project.file("../environment${e}.groovy"), project.file("../private${e}.groovy"), project.file('../private.properties')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
238 outputs.files new File(outputDir,propertyFile), buildenv
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
239 outputs.upToDateWhen {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
240 gradle.env == project.previousBuildenv && outputs.getFiles().every { it.exists() }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
241 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
242 doLast {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
243 t.mkdirs()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
244 outputDir.mkdirs()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
245 buildenv.text = gradle.env
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
246 def ps = gradle."environment${e}".toProperties()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
247 ps['ssdt.project'] = project.name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
248 def pf = new File(outputDir,propertyFile)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
249 ext.outputPropertyFile = pf
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
250 ps.store(pf.newOutputStream(), "by $taskName of $this")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
251 def l = pf.readLines().sort()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
252 pf.text = l.join('\n').replaceAll("\\.PARENT","")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
253 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
254 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
255 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
256 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
257
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
258 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
259
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
260 subprojects {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
261
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
262 it.ext.environment = gradle.environment
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
263
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
264 dependencyLocking {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
265 if (gradle.branch.isRelease()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
266 lockAllConfigurations()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
267 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
268 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
269
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
270 task("releaseLock" ) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
271 description = "Create release dependencies Lock files"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
272 doFirst {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
273 assert gradle.startParameter.writeDependencyLocks : "must include --write-locks or --update-locks option when locking dependencies"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
274 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
275 doLast {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
276
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
277 if (!gradle.branch.isRelease()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
278 throw new BuildCancelledException("releaseLock is only valid on release or hotfix branch.")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
279 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
280
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
281 configurations.findAll {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
282 it.canBeResolved
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
283 }.findAll { c ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
284 def n = c.name.toLowerCase()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
285 ['compile','runtime','provided'].any { n.contains(it) }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
286 }.each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
287 it.resolve()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
288 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
289 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
290 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
291
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
292 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
293
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
294 rootProject.afterEvaluate {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
295
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
296 tasks.addRule("release{Major|Minor|Patch|n.n.n}: create release branch or update release Lock file") { String taskName ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
297
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
298 def matcher = (taskName =~ /^release(Major|Minor|Patch|\d{1,3}\.\d{1,3}\.\d{1,3})$/)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
299 if (matcher.matches()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
300
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
301 task('doReleaseBranch') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
302 ext.requested = matcher[0][1].toLowerCase()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
303 doLast {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
304 def releaseVersion = determineReleaseVersion(requested)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
305 def releaseStream = releaseVersion.isHotfix() ? 'hotfix' : 'release'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
306
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
307 println "-" * 60
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
308 println "Preparing to create branch\n"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
309 println "\tproject:\t${gradle.rootProject.name}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
310 println "\tcurrent:\t${gradle.branch} ($gradle.branch.version)"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
311 println()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
312 println "\ttype :\t${releaseStream.toUpperCase()}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
313 println "\tversion:\t${releaseVersion}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
314 println "\ttarget :\t${releaseStream}/v${releaseVersion}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
315 println()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
316 println("-" * 60)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
317 println "DRY RUN".center(60)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
318 println("-" * 60)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
319
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
320 println "hg flow ${releaseStream} start v${releaseVersion} --dirty --dry-run".execute().text
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
321
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
322 println "-" * 60
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
323
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
324 if (!confirmPrompt("Continue?")) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
325 throw new BuildCancelledException("release branching canceled by user request")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
326 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
327
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
328 println "hg flow ${releaseStream} start v${releaseVersion} --dirty".execute().text
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
329 println "hg update ${releaseStream}/v${releaseVersion}".execute().text
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
330
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
331 setBranchInfo()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
332
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
333 println "-" * 60
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
334 println " Be sure to execute 'releaseLock' task to update the release.lock file before proceeding."
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
335 println "-" * 60
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
336
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
337 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
338 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
339
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
340
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
341 def branchTasks = ['doReleaseBranch']
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
342
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
343 task(taskName) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
344 dependsOn branchTasks
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
345 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
346
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
347 branchTasks.tail().inject(branchTasks.head()) { a, b ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
348 tasks[b].mustRunAfter a
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
349 b
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
350 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
351
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
352 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
353 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
354
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
355 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
356
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
357 private static String readLine(String message, String defaultValue = null) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
358 String _message = "> $message" + (defaultValue ? " [$defaultValue] " : "")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
359 if (System.console()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
360 return System.console().readLine(_message) ?: defaultValue
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
361 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
362 println "$_message "
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
363
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
364 System.in.newReader().readLine() ?: defaultValue
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
365 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
366
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
367 private static boolean confirmPrompt(String message, boolean defaultValue = false) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
368 String defaultStr = defaultValue ? 'Y' : 'n'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
369 String consoleVal = readLine("${message} (Y|n)", defaultStr)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
370 if (consoleVal) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
371 return consoleVal.toLowerCase().startsWith('y')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
372 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
373
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
374 defaultValue
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
375 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
376
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
377 private Version determineReleaseVersion(String requested) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
378 if (requested == 'major') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
379 return gradle.branch.version.nextMajor()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
380 } else if (requested == 'minor') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
381 return gradle.branch.version.nextMinor()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
382 } else if (requested == 'patch') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
383 return gradle.branch.version.nextPatch()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
384 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
385 return new Version(*requested.split(/\./)*.toInteger(), false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
386 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
387 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
388
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
389 class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
390
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
391 def void projectsEvaluated(Gradle gradle) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
392 def ssdtArtifactory = 'https://docker.ssdt.io/artifactory'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
393 Project root = gradle.getRootProject()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
394
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
395
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
396 def branchVersioning = gradle.rootProject.version == 'unspecified'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
397
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
398 root.allprojects {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
399
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
400 def thisProject = delegate
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
401 thisProject.status = 'integration'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
402 if (gradle.branchStream) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
403 if (branchVersioning) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
404 thisProject.version = gradle.branch.version
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
405 thisProject.status = gradle.branch.defaultDependencyStatus
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
406 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
407
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
408 thisProject.status = 'integration'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
409 def fixupVersion = thisProject.version - ".SNAPSHOT"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
410 if (gradle.branchStream == 'feature') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
411 fixupVersion = fixupVersion + ".SNAPSHOT"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
412 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
413 if (gradle.branchStream == 'develop') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
414 fixupVersion = fixupVersion + ".SNAPSHOT"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
415 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
416 if (gradle.branchStream in ['production', 'release', 'hotfix']) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
417 thisProject.status = 'release'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
418 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
419 thisProject.version = fixupVersion
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
420 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
421 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
422
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
423 repositories {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
424
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
425 if (!gradle.bambooBuild || gradle.bambooLocalBuild) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
426 ivy {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
427 name = 'local'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
428 artifactPattern gradle.ivyUserDir + '/local/[artifact]-[revision](-[classifier]).[ext]'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
429 ivyPattern gradle.ivyUserDir + "/local/[module]-ivy-[revision].xml"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
430 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
431 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
432
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
433 if (!gradle.bambooBuild) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
434 mavenLocal()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
435 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
436
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
437 if (gradle.branchStream == 'feature') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
438 ivy {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
439 name = 'ssdt-branches'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
440 url = "${ssdtArtifactory}/ssdt-branches/${gradle.branchHash}/"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
441 patternLayout() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
442 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
443 ivy "[organization]/[module]/ivy-[revision].xml"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
444 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
445 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
446 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
447
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
448 ivy {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
449 name = 'ssdt-releases'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
450 url = "${ssdtArtifactory}/ssdt-releases"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
451 patternLayout() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
452 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
453 artifact "[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
454 ivy "[organization]/[module]/ivy-[revision].xml"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
455 m2compatible = true
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
456 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
457 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
458
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
459 ivy {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
460 name = 'ssdt-snapshots'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
461 url = "${ssdtArtifactory}/ssdt-snapshots"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
462 patternLayout() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
463 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
464 artifact "[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
465 ivy "[organization]/[module]/ivy-[revision].xml"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
466 m2compatible = true
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
467 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
468 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
469
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
470 maven {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
471 name = 'ssdt-repository'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
472 url = "${ssdtArtifactory}/repository"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
473 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
474
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
475 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
476
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
477 def remoteRepos = thisProject.repositories.findAll { it.hasProperty('url') && !(it.name.toLowerCase().contains('local') || it.url.toString().contains('ssdt')) }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
478 if (remoteRepos) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
479 logger.warn "WARNING: Remote repositories configured for $thisProject:\n" + remoteRepos.collect { "\t$it.name $it.url " }.join('\n') + "\n Moved to lowest priority..."
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
480 remoteRepos.each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
481 thisProject.repositories.remove(it)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
482 thisProject.repositories.addLast(it)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
483 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
484 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
485 logger.info "$thisProject configured repositories:\n" + thisProject.repositories.collect {"\t$it.name ${it.hasProperty('url') ? it.url : '' }" }.join('\n')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
486
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
487 /*
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
488 * Add a new task for local repos that declare an Ivy publish configuration
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
489 * This is a workaround for how the older versions handled the publishLocal
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
490 * task and the updateArchive option that was removed in gradle 7.0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
491 */
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
492 if (thisProject.repositories.find { it.name == 'local' } && thisProject.getTasksByName('publishIvyPublicationToLocalRepository', false)) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
493 thisProject.tasks.create("publishLocal") {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
494 description = "Publishes this projects artifacts to developer's local repository"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
495 dependsOn = ["publishIvyPublicationToLocalRepository"]
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
496 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
497 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
498
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
499 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
500
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
501 root.subprojects { p ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
502 if (root.useIndy()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
503 println "enabling indy compilation on $p"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
504 [compileGroovy.groovyOptions, compileTestGroovy.groovyOptions]*.with {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
505 optimizationOptions = [indy: true]
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
506 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
507 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
508 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
509 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
510 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
511
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
512
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
513 task showEnvironments {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
514
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
515 doLast {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
516 println "Defined environments: $gradle.environments"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
517 gradle.environments.each { e ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
518 println "\n $e:"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
519 gradle.getProperty(e).flatten().sort { it.key }.each { k, v ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
520 println String.format(' %25s = %s', k, k.contains('password') ? "********" : v)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
521 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
522 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
523 if (logger.isInfoEnabled()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
524 println "System properties:"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
525 System.properties.each { println " $it" }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
526 println "env variables:"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
527 System.getenv().each { println " $it" }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
528 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
529 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
530 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
531
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
532 def loadEnvironments() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
533 def developerPrivate = new Properties()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
534 if (file('private.properties').exists()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
535 developerPrivate.load(file('private.properties').newReader())
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
536 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
537 def envOverrides = [:]
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
538
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
539 if (!hasProperty('env')) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
540 gradle.ext.env = developerPrivate.env ?: 'dev'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
541 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
542 def values = getProperty('env').split(',')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
543 gradle.ext.env = values.first()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
544 values.tail().each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
545 def (k, v) = it.split('=')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
546 envOverrides.put(k, v)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
547 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
548 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
549
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
550 println "Environment is: $gradle.env ($envOverrides)"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
551 def slurper = new ConfigSlurper(gradle.env)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
552 slurper.setBinding(['gradle': gradle])
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
553
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
554 def environment = slurper.parse(
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
555 '''deploy.mode="production"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
556 environments {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
557 test { deploy.mode="test" }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
558 dev { deploy.mode="development"}
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
559 }''')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
560 if (developerPrivate['deploy.mode']) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
561 environment.put('deploy.mode', developerPrivate['deploy.mode'])
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
562 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
563
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
564 environment.put('branchInfo',gradle.branch)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
565 environment.put('branchVersion',gradle.branch.version.toString())
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
566 def environments = []
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
567 gradle.ext.environment = environment
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
568 file('.').listFiles().findAll { it.name ==~ /^environment.*\.groovy$/ }.sort { it.name }.each { envFile ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
569 def envName = envFile.name - '.groovy'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
570 def privateFile = file("private" + envName - "environment" + ".groovy")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
571 logger.info("loading environment $envFile.name")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
572
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
573 def envCfg = slurper.parse(envFile.toURL())
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
574 envCfg.merge(slurper.parse(developerPrivate))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
575 envCfg.put('ssdt.projectid', gradle.ssdtProjectId)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
576 envCfg.put('ssdt.environment', gradle.env)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
577 if (privateFile.exists()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
578 logger.info("loading private environment $privateFile")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
579 envCfg.merge(slurper.parse(privateFile.toURL()))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
580 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
581
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
582 gradle.rootProject.getProperties().find { it.key.startsWith('environment') }.each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
583 it.value.split(',').each { p ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
584 def (k, v) = p.split('=')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
585 logger.info("$envName: overriding " + k + "=" + v + " in $it")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
586 envCfg.put(k, v)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
587 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
588 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
589
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
590 envOverrides.each { k, v ->
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
591 logger.info("$envName: overriding " + k + "=" + v)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
592 envCfg.put(k, v)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
593 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
594 environment.merge(envCfg)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
595 if (envName != 'environment') {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
596 gradle.ext[envName] = envCfg
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
597 environments << envName
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
598 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
599 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
600 environment.merge(slurper.parse(developerPrivate))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
601 def deployMode = environment.deploy.mode ?: 'development'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
602 environments.each { gradle.ext[it].put('ssdt.deployment.mode', deployMode) }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
603 environments << 'environment'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
604 gradle.ext.environments = environments
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
605
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
606 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
607
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
608 def updateCopyrightProfile(Project r) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
609 r.file('.idea/copyright').mkdirs()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
610 r.file('.idea/copyright/ODE.xml').text =
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
611 '''<component name="CopyrightManager">
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
612 <copyright>
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
613 <option name="notice" value="Copyright (c) &amp;#36;today.year. Ohio Department of Education. - All Rights Reserved.&#10;Unauthorized copying of this file, in any medium, is strictly prohibited.&#10;Written by the State Software Development Team (http://ssdt.oecn.k12.oh.us/)&#10;" />
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
614 <option name="myName" value="ODE" />
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
615 </copyright>
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
616 </component>'''
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
617
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
618 r.file('.idea/copyright/profiles_settings.xml').text =
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
619 '''<component name="CopyrightManager">
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
620 <settings default="ODE" />
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
621 </component>'''
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
622
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
623 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
624
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
625 @ToString(includeNames=true)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
626 class RuntimeInfo {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
627 // OS memory in megabytes, zero if unknown
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
628 int systemMemory = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
629 int systemFreeMemory = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
630 String javaVersion = System.getProperty('java.version')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
631
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
632 RuntimeInfo() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
633 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
634 new File('/proc/meminfo').readLines().findAll { it.startsWith 'Mem' }.collect { it.split(/\s+/) }.each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
635 int value = (it[1] as Long) / 1024
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
636 if (it[0].startsWith('MemTotal')) { systemMemory = value }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
637 if (it[0].startsWith('MemFree')) { systemFreeMemory = value }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
638 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
639
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
640 } catch (e) { }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
641
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
642 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
643
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
644 void requireMemory(int megabytes) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
645 if (systemFreeMemory > 0 && systemFreeMemory < megabytes) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
646 println "WARNING: potentially insufficent OS memory for this build"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
647 // throw new GradleException("insufficent free OS memory for this build (available: ${systemFreeMemory}m, required: ${megabytes}m)")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
648 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
649 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
650 /**
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
651 * Returns maximum memory available upto the value specified.
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
652 */
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
653 int maxMemory(int megabytes) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
654 if (systemFreeMemory) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
655 [systemFreeMemory,megabytes].min()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
656 } else { megabytes }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
657
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
658 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
659
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
660 void requireJava(String version) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
661
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
662 if ( version && !javaVersion.startsWith(version)) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
663 throw new GradleException("Requires java version $version but running under $javaVersion")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
664 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
665 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
666
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
667 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
668
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
669
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
670 @TupleConstructor
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
671 @Sortable
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
672 class Version {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
673
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
674 Integer major = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
675 Integer minor = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
676 Integer patch = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
677 Boolean snapshot = true
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
678
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
679 Integer previousMinor = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
680 Integer previousPatch = 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
681
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
682 Version nextMajor() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
683 new Version(major + 1, 0, 0, false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
684 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
685
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
686 Version nextMinor() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
687 if (snapshot) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
688 new Version(major, minor , 0,false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
689 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
690 new Version(major, minor + 1, 0,false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
691 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
692 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
693
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
694 Version nextPatch() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
695 if (snapshot) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
696 new Version(major, previousMinor, previousPatch + 1,false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
697 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
698 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
699
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
700 Version nextSnapshot() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
701 new Version(major, minor + 1, 0,true,minor,patch)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
702 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
703
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
704 boolean isHotfix() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
705 !snapshot && patch > 0
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
706 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
707
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
708 String toString() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
709 "${major}.${minor}.${patch}${snapshot ? '.SNAPSHOT' : ''}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
710 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
711
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
712 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
713
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
714 void setBranchInfo() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
715 gradle.ext.branch = new BranchInfo(System.getenv('bamboo_planRepository_branch'))
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
716 gradle.ext.branchName = gradle.branch.name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
717 gradle.ext.branchStream = gradle.branch.stream
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
718 gradle.ext.branchHash = gradle.branch.hash
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
719 println "${gradle.hgRepositoryUrl} ${gradle.branch} ${gradle.branch.version}"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
720 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
721
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
722
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
723 @ToString(includes=['name','shortName','buildVersion','imageId','deployName'],includeNames= true)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
724 class BranchInfo {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
725 def name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
726 def stream = "none"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
727 def buildNumber = ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
728 def changeset = ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
729 def version
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
730
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
731 BranchInfo(name) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
732 this.name = name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
733 if (!name) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
734 this.name = determineName() ?: ''
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
735 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
736 this.name = this.name.replace('@', '-')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
737 determineStream()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
738 buildNumber = System.getenv('bamboo_buildNumber') ?: ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
739 changeset = System.getenv('bamboo_planRepository_revision') ?: ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
740 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
741
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
742 String getDefaultDependencyStatus() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
743 return isRelease() ? 'release' : 'integration'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
744 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
745
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
746 private boolean isRelease() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
747 return stream in ['release', 'hotfix']
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
748 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
749
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
750 def getShortName() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
751 def result = name.contains('/') ? name.split('/')[1] : name
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
752 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
753
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
754 String getBuildVersion() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
755 def v = isRelease() ? shortName - "v": ""
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
756 return v
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
757 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
758
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
759 def Version getVersion() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
760 if (!version) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
761 if (isRelease()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
762 version = new Version(*getBuildVersion().split('\\.')*.toInteger(), false)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
763 } else {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
764 version = findSnapshotVersion()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
765 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
766 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
767 return version
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
768 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
769
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
770 def getImageId() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
771 (buildVersion ?: shortName.take(25)) + (buildNumber ? "-${buildNumber}" : "-0")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
772 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
773
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
774 def getDeployName() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
775 (buildVersion ?: shortName.take(25)).toLowerCase().collectReplacements {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
776 ('a'..'z').contains(it) || ('0'..'9').contains(it) || it == "-" ? null : '-'
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
777 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
778 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
779
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
780 def getHash() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
781 generateMD5(name)
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
782 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
783 def generateMD5(String s) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
784 def digest = java.security.MessageDigest.getInstance("MD5")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
785 digest.update(s.bytes);
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
786 new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
787 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
788
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
789 private Version findSnapshotVersion() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
790 println "findSnapshotVersion()"
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
791 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
792 def repositoryUrl = System.getenv('bamboo_planRepository_repositoryUrl')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
793 if (repositoryUrl) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
794 println "git pull $repositoryUrl".execute().text
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
795 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
796 def versions = "git tag".execute().text.split("\n")
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
797 .findAll { it != null || it != "" }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
798 .collect { it.replace("v", "") }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
799 .collect { new Version(*it.split('\\.')*.toInteger()) }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
800 .sort { v1, v2 -> v2 <=> v1 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
801 return versions ? versions.first().nextSnapshot() : new Version().nextSnapshot()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
802 } catch (ex) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
803 println ex
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
804 return new Version().nextSnapshot()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
805 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
806 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
807
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
808 def determineName() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
809 try {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
810 def branch = "git branch --show-current".execute().text.trim()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
811 return branch
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
812 } catch (ignored) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
813 return null
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
814 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
815 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
816
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
817 /**
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
818 * Try to determine the stream based on hgflow configs
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
819 * git-flow doesn't have a local config, so we may need to keep this
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
820 * file around just for the comparison.
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
821 *
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
822 * A new name for the file could help as well?
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
823 */
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
824 void determineStream() {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
825 def flowConfig = new File('.hgflow').exists() ? new File('.hgflow') : new File('../.hgflow')
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
826 if (flowConfig.exists()) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
827 def flows = new Properties()
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
828 flows.load(flowConfig.newReader())
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
829 flows.stringPropertyNames().each {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
830 if (!it.startsWith("[") && name.startsWith(flows.getProperty(it))) {
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
831 stream = it
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
832 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
833 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
834 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
835 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
836
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
837 }
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
838
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
839
69ef3d16fb19 add git specific versions of init20, init50, init70
Marc Davis <davis@ssdt-ohio.org>
parents:
diff changeset
840