annotate init20.gradle @ 258:98a734a5287e

permit usas.core and usps.core versions to be overridden via properties
author smith@nwoca.org
date Thu, 18 Oct 2018 00:20:35 +0100
parents 70b500eef001
children 020de521e394
rev   line source
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
1 import groovy.sql.Sql
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
2 import groovy.transform.Sortable
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
3 import groovy.transform.ToString
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
4 import groovy.transform.TupleConstructor
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
5
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
6 buildscript {
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
7 repositories {
257
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
8 maven { url 'http://repos.ssdt.nwoca.org/artifactory/ssdt-repo' }
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
9 maven { url 'http://repos.ssdt.nwoca.org/artifactory/gradle-plugins' }
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
10 }
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
11 dependencies {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
12 classpath 'postgresql:postgresql:9.1-901.jdbc4'
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
13 classpath 'com.netflix.nebula:gradle-dependency-lock-plugin:5.0.6'
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
14 }
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
15 }
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
16
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
17 final GradleVersion gradleCurrent = GradleVersion.current()
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
18 final GradleVersion gradleV20 = GradleVersion.version('2.0')
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
19 final GradleVersion gradleV31 = GradleVersion.version('3.1')
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
20
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
21 println "Gradle Version: $gradleCurrent"
203
e90ce1d50d85 add java version display
smith@nwoca.org
parents: 200
diff changeset
22
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
23 if (gradleCurrent < gradleV20) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
24 throw new RuntimeException("this init script requires Gradle version 2.0 or higher")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
25 }
91
b72ba5cb5c53 correct develkit location
smith@nwoca.org
parents: 87
diff changeset
26
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
27 gradle.ext.ssdtDevelkitLocation = gradle.ext.has('ssdtDevelkitLocation') ? gradle.ssdtDevelkitLocation : 'http://hg.ssdt-ohio.org/browse/public/develkit'
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
28
94
1290b23e7b76 modify ivy and gradle to use same local repo
smith@nwoca.org
parents: 92
diff changeset
29 ant.property(file: System.getProperty('user.home') + "/.ssdt/private.properties")
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
30 gradle.ext.ivyUserDir = ant.properties['ivy.default.ivy.user.dir'] ?: System.getProperty('user.home') + "/.ivy2"
94
1290b23e7b76 modify ivy and gradle to use same local repo
smith@nwoca.org
parents: 92
diff changeset
31
140
615ef3a8f0b8 default projectId to root project name
smith@nwoca.org
parents: 139
diff changeset
32 gradle.ext.ssdtProjectId = System.getenv('bamboo_project_id') ?: rootProject.name
137
cc3cd7da35a7 add projectId to environment based on bamboo id
smith@nwoca.org
parents: 136
diff changeset
33
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
34 gradle.addListener(new ArtifactoryGradleSettings())
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
35
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
36 def hostname
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
37 try {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
38 hostname = "hostname".execute().text.toLowerCase().readLines().first()
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
39 } catch (e) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
40 hostname = 'unknown'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
41 }
115
8ddd1a6fa4ea patch to improve identification of bamboo severs
smith@nwoca.org
parents: 114
diff changeset
42
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
43 gradle.ext.bambooBuild = System.getenv().any {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
44 it.key.toLowerCase().contains('bamboo')
193
0c0b1413ea70 narrow definition of bamboo build
smith@nwoca.org
parents: 192
diff changeset
45 } || hostname?.startsWith('ssdt-ba')
115
8ddd1a6fa4ea patch to improve identification of bamboo severs
smith@nwoca.org
parents: 114
diff changeset
46
129
bef2bfc61f6e CM-133: fix bamboo plan parsing. enable showEnv to display sytem properties and env variables in -info mode
smith@nwoca.org
parents: 128
diff changeset
47 gradle.ext.bambooPlan = (System.getenv('BAMBOO_PLAN') ?: 'UNKNOWN-UNKNOWN-JOB1').split('-')[0..1].join('-')
bef2bfc61f6e CM-133: fix bamboo plan parsing. enable showEnv to display sytem properties and env variables in -info mode
smith@nwoca.org
parents: 128
diff changeset
48 logger.info "Bamboo plan: ${gradle.bambooPlan}"
128
c93df17513f1 CM-133: add jacoco for standard coverage reports. Add sonar properties for SCM and bamboo plan
smith@nwoca.org
parents: 126
diff changeset
49
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
50 gradle.ext.buildTimestamp = System.currentTimeMillis().toString().padLeft(14, '0')
141
d3c09b4e3332 modify for hgflow. for feature branches, use timestamp for snapshots and resolve branch from ssdt-branches
Dave Smith <smith@nwoca.org>
parents: 140
diff changeset
51
128
c93df17513f1 CM-133: add jacoco for standard coverage reports. Add sonar properties for SCM and bamboo plan
smith@nwoca.org
parents: 126
diff changeset
52 gradle.ext.hgRepositoryUrl = ""
223
6cbe6a8597db USASR-2244: Attempt to simplify changes to init script by placing hg pull in findSnapshotVersion method
Christopher Springer <springer@nwoca.org>
parents: 222
diff changeset
53
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
54 try {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
55 gradle.ext.hgRepositoryUrl = ("hg path".execute().text.split('=') ?: ['', ''])[1].trim()
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
56 } catch (e) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
57 }
159
0c48cfd1938b allow projects to override branchName
Dave Smith <smith@nwoca.org>
parents: 158
diff changeset
58
169
c4b7c8a11913 normalize spring security
Dave Smith <smith@nwoca.org>
parents: 168
diff changeset
59 def springModuleTranslator = [
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
60 'spring-transaction': 'spring-tx',
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
61 'spring-web-servlet': 'spring-webmvc',
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
62 ].withDefault { it }
168
7f023317034b add helper to normalize springframework to non-osgi jars
Dave Smith <smith@nwoca.org>
parents: 166
diff changeset
63
7f023317034b add helper to normalize springframework to non-osgi jars
Dave Smith <smith@nwoca.org>
parents: 166
diff changeset
64 gradle.ext.normalizeSpring = { DependencyResolveDetails details ->
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
65 if (details.requested.group == 'org.springframework' && details.requested.name.startsWith('org.springframework.')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
66 def shortName = springModuleTranslator[details.requested.name.replace('org.springframework.', 'spring-').replace('.', '-')]
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
67 details.useTarget(group: 'org.springframework', name: shortName, version: details.requested.version)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
68 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
69 if (details.requested.group == 'org.springframework.security' && details.requested.name.startsWith('org.springframework.')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
70 def shortName = springModuleTranslator[details.requested.name.replace('org.springframework.', 'spring-').replace('.', '-')]
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
71 details.useTarget("${details.requested.group}:$shortName:${details.requested.version}")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
72 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
73 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
74
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
75 gradle.ext.runtimeInfo = new RuntimeInfo()
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
76
254
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
77
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
78 if (System.env.DOCKER_HOST ) {
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
79 if (System.env.DOCKER_HOST.contains('tcp:')) {
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
80 gradle.ext.dockerEngineUrl = "https:${System.env.DOCKER_HOST?.minus('tcp:')}"
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
81 }
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
82 gradle.ext.dockerEngineUrl = System.env.DOCKER_HOST
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
83 }
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
84
247
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
85 setBranchInfo()
128
c93df17513f1 CM-133: add jacoco for standard coverage reports. Add sonar properties for SCM and bamboo plan
smith@nwoca.org
parents: 126
diff changeset
86
155
6389a03379a6 CM-135: allow environment* scripts to access gradle project
Dave Smith <smith@nwoca.org>
parents: 154
diff changeset
87 loadEnvironments()
6389a03379a6 CM-135: allow environment* scripts to access gradle project
Dave Smith <smith@nwoca.org>
parents: 154
diff changeset
88
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
89 gradle.environment.put('hgRepositoryUrl', gradle.hgRepositoryUrl)
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
90 gradle.environment.put('branchName', gradle.branch.name)
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
91 gradle.environment.put('branchStream', gradle.branch.stream)
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
92 gradle.environment.put('branchHash', gradle.branch.hash)
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
93
205
55a2f489dbf7 add ability to verify java version
smith@nwoca.org
parents: 204
diff changeset
94
195
a7a7d0e263d6 allow private setting of changing/dynamic cache lifetime.
smith@nwoca.org
parents: 193
diff changeset
95 def cacheTimeout = 60 * 60 * 8
a7a7d0e263d6 allow private setting of changing/dynamic cache lifetime.
smith@nwoca.org
parents: 193
diff changeset
96 if (gradle.environment['dependencyTimeout']) {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
97 cacheTimeout = gradle.environment['dependencyTimeout'] as Integer
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
98 println "setting changing dependency timeout to $cacheTimeout seconds"
195
a7a7d0e263d6 allow private setting of changing/dynamic cache lifetime.
smith@nwoca.org
parents: 193
diff changeset
99 }
160
6af68acaf9b2 modify to use bamboo env varible to override branchName
Dave Smith <smith@nwoca.org>
parents: 159
diff changeset
100
195
a7a7d0e263d6 allow private setting of changing/dynamic cache lifetime.
smith@nwoca.org
parents: 193
diff changeset
101 gradle.ext.cacheTimeout = cacheTimeout
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
102
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
103 rootProject.ext.indyCapable = {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
104 boolean capable = true
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
105 try {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
106 Class.forName('java.lang.invoke.MethodHandle')
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
107 } catch (e) {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
108 capable = false
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
109 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
110 capable && !rootProject.hasProperty('skipIndy')
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
111 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
112
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
113 rootProject.ext.useIndy = {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
114 boolean indy = false
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
115 // first, check if a system property activates indy support
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
116 indy |= System.hasProperty('indy') && Boolean.valueOf(System.getProperty('indy'))
79
f0c29c1ac1f4 finish gradle to artifactory publishing
smith@nwoca.org
parents: 78
diff changeset
117
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
118 // check ssdt environment for indy property.
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
119 indy |= (gradle.environment.indy) ? gradle.environment.indy.toBoolean() : false
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
120
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
121 // check if the main project has an extension property setting indy (-Pindy).
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
122 if (rootProject.hasProperty('indy')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
123 indy = (Boolean.valueOf(rootProject.indy))
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
124 }
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
125
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
126 // set the groovy runtime system property to ensure forked junit test will get the indy flag properly
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
127 if (indy && rootProject.indyCapable()) System.setProperty("groovy.target.indy", "true")
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
128
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
129 indy && rootProject.indyCapable()
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
130 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
131
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
132 println "Indy available: ${rootProject.indyCapable()} enabled: ${rootProject.useIndy()}"
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
133
79
f0c29c1ac1f4 finish gradle to artifactory publishing
smith@nwoca.org
parents: 78
diff changeset
134 if (gradle.bambooBuild) {
247
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
135
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
136 file('build-number.txt').text = "build.number=${gradle.branch.buildNumber ?: -1 }\n"
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
137 gradle.ext.ssdtGradlekitLocation = gradle.ext.has('ssdtGradlekitLocation') ? gradle.ssdtGradlekitLocation : 'http://hg.ssdt-ohio.org/ssdt/gradlekit/raw-file/tip'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
138 logger.info "applying SSDT artifactory Gradle Settings (bamboo: $gradle.bambooBuild host: $hostname)"
181
d90208c97ec5 use artifactory script for gradle 2.0
smith@nwoca.org
parents: 180
diff changeset
139 apply from: "${gradle.ssdtGradlekitLocation}/artifactory20.gradle"
79
f0c29c1ac1f4 finish gradle to artifactory publishing
smith@nwoca.org
parents: 78
diff changeset
140 }
76
15a5fd89d80b add display of envs for bamboo testing
smith@nwoca.org
parents: 75
diff changeset
141
246
9884456bea33 allow legacy projects to disable metrics entirely
smith@nwoca.org
parents: 245
diff changeset
142 if (!rootProject.hasProperty('disableMetrics')) {
9884456bea33 allow legacy projects to disable metrics entirely
smith@nwoca.org
parents: 245
diff changeset
143 apply from: "${gradle.ssdtDevelkitLocation}/metrics.gradle"
9884456bea33 allow legacy projects to disable metrics entirely
smith@nwoca.org
parents: 245
diff changeset
144 }
85
f36eeb411845 add sonar publishing
smith@nwoca.org
parents: 84
diff changeset
145
136
9ce07c211984 for idea: add enabling hg, set default codestyle, set standard copyright notice
smith@nwoca.org
parents: 129
diff changeset
146 rootProject.afterEvaluate { r ->
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
147 if (gradle.bambooBuild && r.hasProperty('requireJavaVersion')) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
148 gradle.runtimeInfo.requireJava( r.getProperty('requireJavaVersion') )
240
05a1bbd319bc remove idea customizations
smith@nwoca.org
parents: 233
diff changeset
149 }
136
9ce07c211984 for idea: add enabling hg, set default codestyle, set standard copyright notice
smith@nwoca.org
parents: 129
diff changeset
150 }
9ce07c211984 for idea: add enabling hg, set default codestyle, set standard copyright notice
smith@nwoca.org
parents: 129
diff changeset
151
9ce07c211984 for idea: add enabling hg, set default codestyle, set standard copyright notice
smith@nwoca.org
parents: 129
diff changeset
152 def findComponent(project, name) {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
153 project.component.find { it.@name == name }
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
154 }
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
155
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
156 if (gradleCurrent >= gradleV31) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
157 wrapper {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
158 distributionType = org.gradle.api.tasks.wrapper.Wrapper.DistributionType.ALL
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
159 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
160 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
161
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
162 allprojects {
85
f36eeb411845 add sonar publishing
smith@nwoca.org
parents: 84
diff changeset
163
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
164 apply plugin: nebula.plugin.dependencylock.DependencyLockPlugin
216
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
165
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
166 dependencyLock {
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
167 globalLockFile = gradle.branch.isRelease() ? 'release.lock' : 'global.lock'
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
168 includeTransitives = true
216
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
169 }
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
170
232
47535c8358ce DEP-13: adjust init script to handle both 2.+ and 3.1. Disable sonar for 3.1+
smith@nwoca.org
parents: 231
diff changeset
171 configurations.all {
47535c8358ce DEP-13: adjust init script to handle both 2.+ and 3.1. Disable sonar for 3.1+
smith@nwoca.org
parents: 231
diff changeset
172 resolutionStrategy.cacheChangingModulesFor gradle.cacheTimeout, 'seconds'
47535c8358ce DEP-13: adjust init script to handle both 2.+ and 3.1. Disable sonar for 3.1+
smith@nwoca.org
parents: 231
diff changeset
173 resolutionStrategy.cacheDynamicVersionsFor gradle.cacheTimeout, 'seconds'
47535c8358ce DEP-13: adjust init script to handle both 2.+ and 3.1. Disable sonar for 3.1+
smith@nwoca.org
parents: 231
diff changeset
174 }
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
175 configurations.all {
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
176 resolutionStrategy.eachDependency { DependencyResolveDetails details ->
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
177 if (details.requested.group == 'org.ssdt_ohio' && !details.requested.version ) {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
178 details.useVersion( "latest.${gradle.branch.defaultDependencyStatus}" )
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
179 }
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
180 if (details.requested.version == 'default') {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
181 details.useVersion("latest.${gradle.branch.defaultDependencyStatus}" )
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
182 }
231
ce34e62224cf update set dependencyLock plugin to also lock transitives. provide way of overriding common version
smith@nwoca.org
parents: 230
diff changeset
183 if (project.hasProperty("overrideCommon")) {
ce34e62224cf update set dependencyLock plugin to also lock transitives. provide way of overriding common version
smith@nwoca.org
parents: 230
diff changeset
184 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.contains('ssdt.common.')) {
ce34e62224cf update set dependencyLock plugin to also lock transitives. provide way of overriding common version
smith@nwoca.org
parents: 230
diff changeset
185 details.useVersion(project.overrideCommon)
ce34e62224cf update set dependencyLock plugin to also lock transitives. provide way of overriding common version
smith@nwoca.org
parents: 230
diff changeset
186 }
ce34e62224cf update set dependencyLock plugin to also lock transitives. provide way of overriding common version
smith@nwoca.org
parents: 230
diff changeset
187 }
258
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
188 if (project.hasProperty("overrideUsasCore")) {
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
189 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.startsWith('usas.') && !details.requested.name.startsWith('usas.vui')) {
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
190 details.useVersion(project.overrideUsasCore)
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
191 }
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
192 }
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
193 if (project.hasProperty("overrideUspsCore")) {
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
194 if (details.requested.group == 'org.ssdt_ohio' && details.requested.name.startsWith('usps.') && !details.requested.name.startsWith('usps.vui')) {
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
195 details.useVersion(project.overrideUspsCore)
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
196 }
98a734a5287e permit usas.core and usps.core versions to be overridden via properties
smith@nwoca.org
parents: 257
diff changeset
197 }
214
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
198 }
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
199 }
0ca4f3c952b7 DEP-11: add depency-lock plugin and a resolver to supply dynamic version based on branch. Cleanup metrics includes
smith@nwoca.org
parents: 211
diff changeset
200
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
201 task cleanLocal(description: "removes all artifacts from developer's local repository") {
84
fa7b349201eb add descriptions to tasks
smith@nwoca.org
parents: 83
diff changeset
202
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
203 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
204 def local = project.repositories.find { it.name == 'local' }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
205 if (local) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
206 logger.info "removing local repo: $it"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
207 new File(System.properties['user.home'] + "/.ssdt/local-repo").deleteDir()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
208 def localDir = new File(gradle.ivyUserDir + "/local")
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
209 localDir.deleteDir()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
210 logger.info "verifying removal of local repo"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
211 if (localDir.exists()) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
212 throw new org.gradle.api.GradleException("Unable to clean ${localDir}. Files may be locked by another process.")
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
213 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
214 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
215 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
216 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
217
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
218 cleanLocal.onlyIf {
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
219 project.repositories.any { it.name == 'local' }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
220 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
221
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
222 project.ext.previousBuildenv = project.file('build/buildenv.txt').exists() ? project.file('build/buildenv.txt').text : 'none'
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
223
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
224 tasks.addRule("Pattern: <environment>As[Test]Properties: Generates <environment>.properties as resource or Test resource") { String taskName ->
161
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
225 if ((taskName - 'Test').endsWith("AsProperties") && !taskName.startsWith('clean')) {
185
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
226 // def t = taskName.contains('Test') ? processTestResources.destinationDir : processResources.destinationDir
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
227 def t = taskName.contains('Test') ? sourceSets.test.output.resourcesDir : sourceSets.main.output.resourcesDir
161
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
228 def e = (taskName - 'Test' - 'AsProperties').capitalize()
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
229 task(taskName) {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
230 ext.outputDir = t
185
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
231 ext.propertyFile = "${e.toLowerCase()}.properties"
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
232 ext.buildenv = project.file('build/buildenv.txt')
181
d90208c97ec5 use artifactory script for gradle 2.0
smith@nwoca.org
parents: 180
diff changeset
233 inputs.files project.file("../environment${e}.groovy"), project.file("../private${e}.groovy"), project.file('../private.properties')
185
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
234 outputs.files new File(outputDir,propertyFile), buildenv
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
235 outputs.upToDateWhen {
245
df4f5bad8782 ensure property files exist in output task
smith@nwoca.org
parents: 241
diff changeset
236 gradle.env == project.previousBuildenv && outputs.getFiles().every { it.exists() }
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
237 }
161
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
238 doLast {
250
88d5807ea351 USASR-2891: Add back removed creation of directory
Christopher Springer <springer@nwoca.org>
parents: 249
diff changeset
239 t.mkdirs()
249
35c7933572f8 USASR-2891: Change creation of directories to use outputDir
Christopher Springer <springer@nwoca.org>
parents: 247
diff changeset
240 outputDir.mkdirs()
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
241 buildenv.text = gradle.env
173
50db7a832af5 add subproject name when generating properties
smith@nwoca.org
parents: 172
diff changeset
242 def ps = gradle."environment${e}".toProperties()
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
243 ps['ssdt.project'] = project.name
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
244 def pf = new File(outputDir,propertyFile)
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
245 ext.outputPropertyFile = pf
185
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
246 ps.store(pf.newOutputStream(), "by $taskName of $this")
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
247 def l = pf.readLines().sort()
e1762e4ad070 write properties to correct sourceset output. allow property filename to overridden more easily
smith@nwoca.org
parents: 184
diff changeset
248 pf.text = l.join('\n')
161
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
249 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
250 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
251 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
252 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
253
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
254 if (gradle.hasProperty('environmentDatabase')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
255 tasks.addRule("Pattern: database{Drop|Create}...: drops or creates the environment's database") { String taskName ->
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
256 if (taskName.startsWith('database') && (taskName.contains('Drop') || taskName.contains('Create'))) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
257 task(taskName) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
258 doLast {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
259 def dropIt = taskName.contains("Drop")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
260 def createIt = taskName.contains("Create")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
261 def driverName = gradle.environmentDatabase.jdbc.driverClassName
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
262 def databaseUrl = gradle.environmentDatabase.jdbc.url
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
263 if (driverName != "org.postgresql.Driver") {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
264 logger.info "skipping database operation for non-postgresql driver"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
265 throw new StopActionException("driver $driverName not supported by $taskName")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
266 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
267 if (!configurations.hasProperty('jdbcdriver')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
268 throw new GradleException("databaseDrop requires a 'jdbcdriver' configuration with a postgresql (or other) driver")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
269 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
270 configurations.jdbcdriver.each { File file ->
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
271 GroovyObject.class.classLoader.addURL(file.toURL())
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
272 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
273 Class.forName(driverName)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
274 def url = new URI(databaseUrl.substring(5))
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
275 def jdbcBaseUrl = databaseUrl - url.path
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
276 def databaseName = url.path - "/"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
277 def adminUrl = jdbcBaseUrl + "/postgres"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
278 def sql = Sql.newInstance(adminUrl,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
279 gradle.environmentDatabase.jdbc.username,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
280 gradle.environmentDatabase.jdbc.password,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
281 driverName)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
282 if (dropIt) {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
283 logger.info "disconnecting sessions from $databaseName"
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
284 sql.execute "REVOKE CONNECT ON DATABASE \"" + databaseName + "\" FROM public;"
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
285 sql.execute "REVOKE CONNECT ON DATABASE \"" + databaseName + "\" FROM " + gradle.environmentDatabase.jdbc.username + ";"
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
286 sql.execute "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '" + databaseName + "';"
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
287 logger.info "dropping $databaseName (if exists) from $adminUrl"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
288 sql.execute 'DROP DATABASE IF EXISTS "' + databaseName + '";'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
289 }
174
e949e86b570e add databaseDrop|Create tasks for managing environment psql databases
smith@nwoca.org
parents: 173
diff changeset
290
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
291 if (createIt) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
292 logger.info "Creating database $databaseName at $adminUrl"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
293 sql.execute 'CREATE DATABASE "' + databaseName + '";'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
294 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
295 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
296 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
297
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
298 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
299 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
300 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
301
230
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
302 }
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
303
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
304 rootProject.afterEvaluate {
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
305
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
306 tasks.addRule("release{Major|Minor|Patch|n.n.n|Lock}: create release branch or update release Lock file") { String taskName ->
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
307
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
308 if (taskName == 'releaseLock') {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
309
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
310 if (!gradle.branch.isRelease()) {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
311 throw new BuildCancelledException("releaseLock is only valid on release or hotfix branch.")
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
312 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
313
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
314 dependencyLock.globalLockFile = 'release.lock'
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
315
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
316 task('doCommitLock') {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
317 doLast {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
318 println 'hg status'.execute().text
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
319 println 'hg commit release.lock -A -m "lock dynamic dependencies for release"'.execute().text
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
320 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
321 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
322
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
323
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
324 task('doForceDeleteLock') {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
325 doLast {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
326 println "deleting $dependencyLock.globalLockFile"
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
327 rootProject.file(dependencyLock.globalLockFile).delete()
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
328 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
329 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
330
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
331
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
332 def branchTasks = ['deleteGlobalLock', 'doForceDeleteLock', 'generateGlobalLock', 'saveGlobalLock', 'doCommitLock']
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
333
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
334 task(taskName) {
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
335 dependsOn branchTasks
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
336 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
337
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
338 branchTasks.tail().inject(branchTasks.head()) { a, b ->
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
339 tasks[b].mustRunAfter a
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
340 b
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
341 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
342
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
343 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
344
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
345 def matcher = (taskName =~ /^release(Major|Minor|Patch|\d{1,3}\.\d{1,3}\.\d{1,3})$/)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
346 if (matcher.matches()) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
347
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
348 dependencyLock.globalLockFile = 'release.lock'
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
349
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
350 task('doReleaseBranch') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
351 ext.requested = matcher[0][1].toLowerCase()
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
352 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
353 def releaseVersion = determineReleaseVersion(requested)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
354 def releaseStream = releaseVersion.isHotfix() ? 'hotfix' : 'release'
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
355
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
356 println "-" * 60
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
357 println "Preparing to create branch\n"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
358 println "\tproject:\t${gradle.rootProject.name}"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
359 println "\tcurrent:\t${gradle.branch} ($gradle.branch.version)"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
360 println()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
361 println "\ttype :\t${releaseStream.toUpperCase()}"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
362 println "\tversion:\t${releaseVersion}"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
363 println "\ttarget :\t${releaseStream}/v${releaseVersion}"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
364 println()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
365 println("-" * 60)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
366 println "DRY RUN".center(60)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
367 println("-" * 60)
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
368
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
369 println "hg flow ${releaseStream} start v${releaseVersion} --dirty --dry-run".execute().text
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
370
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
371 println "-" * 60
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
372
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
373 if (!confirmPrompt("Continue?")) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
374 throw new BuildCancelledException("release branching canceled by user request")
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
375 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
376
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
377 println "hg flow ${releaseStream} start v${releaseVersion} --dirty".execute().text
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
378 println "hg update ${releaseStream}/v${releaseVersion}".execute().text
247
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
379
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
380 setBranchInfo()
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
381
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
382 println "-" * 60
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
383 println " Be sure to execute 'releaseLock' task to update the release.lock file before proceeding."
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
384 println "-" * 60
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
385
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
386 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
387 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
388
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
389
256
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
390 def branchTasks = ['doReleaseBranch']
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
391
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
392 task(taskName) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
393 dependsOn branchTasks
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
394 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
395
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
396 branchTasks.tail().inject(branchTasks.head()) { a, b ->
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
397 tasks[b].mustRunAfter a
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
398 b
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
399 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
400
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
401 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
402 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
403
75
02cc8e50945e allow local file repo for local builds
smith@nwoca.org
parents: 74
diff changeset
404 }
02cc8e50945e allow local file repo for local builds
smith@nwoca.org
parents: 74
diff changeset
405
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
406 private static String readLine(String message, String defaultValue = null) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
407 String _message = "> $message" + (defaultValue ? " [$defaultValue] " : "")
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
408 if (System.console()) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
409 return System.console().readLine(_message) ?: defaultValue
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
410 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
411 println "$_message "
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
412
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
413 System.in.newReader().readLine() ?: defaultValue
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
414 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
415
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
416 private static boolean confirmPrompt(String message, boolean defaultValue = false) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
417 String defaultStr = defaultValue ? 'Y' : 'n'
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
418 String consoleVal = readLine("${message} (Y|n)", defaultStr)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
419 if (consoleVal) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
420 return consoleVal.toLowerCase().startsWith('y')
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
421 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
422
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
423 defaultValue
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
424 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
425
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
426 private Version determineReleaseVersion(String requested) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
427 if (requested == 'major') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
428 return gradle.branch.version.nextMajor()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
429 } else if (requested == 'minor') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
430 return gradle.branch.version.nextMinor()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
431 } else if (requested == 'patch') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
432 return gradle.branch.version.nextPatch()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
433 } else {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
434 return new Version(*requested.split(/\./)*.toInteger(), false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
435 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
436 }
114
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
437
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
438 class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
439
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
440 def void projectsEvaluated(Gradle gradle) {
83
9c551ecc816a clean up script to be more maintainable
smith@nwoca.org
parents: 82
diff changeset
441 def ssdtArtifactory = 'http://repos.ssdt.nwoca.org/artifactory'
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
442 Project root = gradle.getRootProject()
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
443
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
444
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
445 def branchVersioning = gradle.rootProject.version == 'unspecified'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
446
114
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
447 root.allprojects {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
448
141
d3c09b4e3332 modify for hgflow. for feature branches, use timestamp for snapshots and resolve branch from ssdt-branches
Dave Smith <smith@nwoca.org>
parents: 140
diff changeset
449 def thisProject = delegate
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
450 thisProject.status = 'integration'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
451 if (gradle.branchStream) {
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
452 if (branchVersioning) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
453 thisProject.version = gradle.branch.version
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
454 thisProject.status = gradle.branch.defaultDependencyStatus
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
455 } else {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
456
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
457 thisProject.status = 'integration'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
458 def fixupVersion = thisProject.version - ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
459 if (gradle.branchStream == 'feature') {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
460 fixupVersion = fixupVersion + ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
461 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
462 if (gradle.branchStream == 'develop') {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
463 fixupVersion = fixupVersion + ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
464 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
465 if (gradle.branchStream in ['production', 'release', 'hotfix']) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
466 thisProject.status = 'release'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
467 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
468 thisProject.version = fixupVersion
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
469 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
470 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
471
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
472 repositories {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
473
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
474 if (!gradle.bambooBuild) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
475 ivy {
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
476 name = 'local'
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
477 artifactPattern gradle.ivyUserDir + '/local/[artifact]-[revision](-[classifier]).[ext]'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
478 ivyPattern gradle.ivyUserDir + "/local/[module]-ivy-[revision].xml"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
479 }
141
d3c09b4e3332 modify for hgflow. for feature branches, use timestamp for snapshots and resolve branch from ssdt-branches
Dave Smith <smith@nwoca.org>
parents: 140
diff changeset
480 }
114
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
481
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
482 if (gradle.branchStream == 'feature') {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
483 ivy {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
484 name = 'ssdt-branches'
177
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
485 url = "${ssdtArtifactory}/ssdt-branches/${gradle.branchHash}/"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
486 layout "pattern", {
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
487 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
488 ivy "[organization]/[module]/ivy-[revision].xml"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
489 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
490 }
74
a622ec40a570 update repo definitions
smith@nwoca.org
parents: 73
diff changeset
491 }
114
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
492
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
493 ivy {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
494 name = 'ssdt-snapshots'
176
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
495 url = "${ssdtArtifactory}/ssdt-snapshots"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
496 layout "pattern", {
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
497 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
498 artifact "[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
499 ivy "[organization]/[module]/ivy-[revision].xml"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
500 m2compatible = true
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
501 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
502 }
114
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
503
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
504 maven {
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
505 name = 'ssdt-repository'
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
506 url = "${ssdtArtifactory}/repository"
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
507 }
9ed6a36104ed Improve dependency resolution performance: use gradle resolver instead of ivy and use new repo which does not cnotain snapshots
smith@nwoca.org
parents: 109
diff changeset
508
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
509 }
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
510
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
511 def remoteRepos = thisProject.repositories.findAll { it.hasProperty('url') && !(it.name == 'local' || it.url.toString().contains('ssdt')) }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
512 if (remoteRepos) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
513 logger.warn "WARNING: Remote repositories configured for $thisProject:\n" + remoteRepos.collect { "\t$it.name $it.url " }.join('\n') + "\n Moved to lowest priority..."
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
514 remoteRepos.each {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
515 thisProject.repositories.remove(it)
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
516 thisProject.repositories.addLast(it)
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
517 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
518 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
519 logger.info "$thisProject configured repositories:\n" + thisProject.repositories.collect {"\t$it.name ${it.hasProperty('url') ? it.url : '' }" }.join('\n')
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
520
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
521
176
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
522 if (thisProject.repositories.find { it.name == 'local' } && thisProject.getTasksByName('uploadArchives', false)) {
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
523 uploadArchives {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
524 repositories {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
525 add thisProject.repositories.local
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
526 }
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
527 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
528
126
b2532280341e CM-133: switch to sonar-runner
smith@nwoca.org
parents: 124
diff changeset
529 thisProject.tasks.create("publishLocal") {
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
530 description = "Publishes this projects artifacts to developer's local repository"
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
531 dependsOn = ["uploadArchives"]
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
532 }
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
533 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
534
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
535 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
536
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
537 root.subprojects { p ->
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
538 if (root.useIndy()) {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
539 def groovyIndy = p.configurations.compile.files.find { f -> f.name.startsWith('groovy-all') && f.name.contains('-indy') }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
540 if (groovyIndy) {
203
e90ce1d50d85 add java version display
smith@nwoca.org
parents: 200
diff changeset
541 println "enabling indy compilation on $p"
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
542 [compileGroovy.groovyOptions, compileTestGroovy.groovyOptions]*.with {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
543 optimizationOptions = [indy: true]
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
544 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
545 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
546 }
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
547 }
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
548 }
95
ebb42488396a modify wrapper to use gradle version when executed
smith@nwoca.org
parents: 94
diff changeset
549 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
550
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
551
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
552 task showEnvironments {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
553
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
554 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
555 println "Defined environments: $gradle.environments"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
556 gradle.environments.each { e ->
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
557 println "\n $e:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
558 gradle.getProperty(e).flatten().sort { it.key }.each { k, v ->
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
559 println String.format(' %25s = %s', k, k.contains('password') ? "********" : v)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
560 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
561 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
562 if (logger.isInfoEnabled()) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
563 println "System properties:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
564 System.properties.each { println " $it" }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
565 println "env variables:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
566 System.getenv().each { println " $it" }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
567 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
568 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
569 }
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
570
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
571 def loadEnvironments() {
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
572 def developerPrivate = new Properties()
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
573 if (file('private.properties').exists()) {
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
574 developerPrivate.load(file('private.properties').newReader())
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
575 }
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
576 def envOverrides = [:]
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
577
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
578 if (!hasProperty('env')) {
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
579 gradle.ext.env = developerPrivate.env ?: 'dev'
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
580 } else {
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
581 def values = getProperty('env').split(',')
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
582 gradle.ext.env = values.first()
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
583 values.tail().each {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
584 def (k, v) = it.split('=')
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
585 envOverrides.put(k, v)
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
586 }
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
587 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
588
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
589 println "Environment is: $gradle.env ($envOverrides)"
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
590 def slurper = new ConfigSlurper(gradle.env)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
591 slurper.setBinding(['gradle': gradle])
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
592
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
593 def environment = slurper.parse(
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
594 '''deploy.mode="production"
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
595 environments {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
596 test { deploy.mode="test" }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
597 dev { deploy.mode="development"}
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
598 }''')
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
599 if (developerPrivate['deploy.mode']) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
600 environment.put('deploy.mode', developerPrivate['deploy.mode'])
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
601 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
602
216
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
603 environment.put('branchInfo',gradle.branch)
b628d49d2891 DEP-11: change name of lock file for release branch. update release script to depend on new resolution and dependency locking
smith@nwoca.org
parents: 215
diff changeset
604 environment.put('branchVersion',gradle.branch.version.toString())
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
605 def environments = []
162
29c3af8dc031 add default global deploy.mode
Dave Smith <smith@nwoca.org>
parents: 161
diff changeset
606 gradle.ext.environment = environment
163
c5f09d617715 process environment files in name order
Dave Smith <smith@nwoca.org>
parents: 162
diff changeset
607 file('.').listFiles().findAll { it.name ==~ /^environment.*\.groovy$/ }.sort { it.name }.each { envFile ->
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
608 def envName = envFile.name - '.groovy'
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
609 def privateFile = file("private" + envName - "environment" + ".groovy")
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
610 logger.info("loading environment $envFile.name")
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
611
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
612 def envCfg = slurper.parse(envFile.toURL())
99
333e489c1188 add ivy artifact by name pattern
smith@nwoca.org
parents: 98
diff changeset
613 envCfg.merge(slurper.parse(developerPrivate))
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
614 envCfg.put('ssdt.projectid', gradle.ssdtProjectId)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
615 envCfg.put('ssdt.environment', gradle.env)
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
616 if (privateFile.exists()) {
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
617 logger.info("loading private environment $privateFile")
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
618 envCfg.merge(slurper.parse(privateFile.toURL()))
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
619 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
620
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
621 gradle.rootProject.getProperties().find { it.key.startsWith('environment') }.each {
105
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
622 it.value.split(',').each { p ->
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
623 def (k, v) = p.split('=')
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
624 logger.info("$envName: overriding " + k + "=" + v + " in $it")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
625 envCfg.put(k, v)
105
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
626 }
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
627 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
628
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
629 envOverrides.each { k, v ->
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
630 logger.info("$envName: overriding " + k + "=" + v)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
631 envCfg.put(k, v)
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
632 }
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
633 environment.merge(envCfg)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
634 if (envName != 'environment') {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
635 gradle.ext[envName] = envCfg
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
636 environments << envName
99
333e489c1188 add ivy artifact by name pattern
smith@nwoca.org
parents: 98
diff changeset
637 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
638 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
639 environment.merge(slurper.parse(developerPrivate))
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
640 def deployMode = environment.deploy.mode ?: 'development'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
641 environments.each { gradle.ext[it].put('ssdt.deployment.mode', deployMode) }
99
333e489c1188 add ivy artifact by name pattern
smith@nwoca.org
parents: 98
diff changeset
642 environments << 'environment'
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
643 gradle.ext.environments = environments
105
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
644
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
645 }
166
9947c2c8ff44 switch to hash for layout of feature branches
Dave Smith <smith@nwoca.org>
parents: 165
diff changeset
646
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
647
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
648 @ToString(includeNames=true)
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
649 class RuntimeInfo {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
650 // OS memory in megabytes, zero if unknown
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
651 int systemMemory = 0
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
652 int systemFreeMemory = 0
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
653 String javaVersion = System.getProperty('java.version')
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
654
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
655 RuntimeInfo() {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
656 try {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
657 new File('/proc/meminfo').readLines().findAll { it.startsWith 'Mem' }.collect { it.split(/\s+/) }.each {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
658 int value = (it[1] as Long) / 1024
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
659 if (it[0].startsWith('MemTotal')) { systemMemory = value }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
660 if (it[0].startsWith('MemFree')) { systemFreeMemory = value }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
661 }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
662
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
663 } catch (e) { }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
664
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
665 }
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
666
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
667 void requireMemory(int megabytes) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
668 if (systemFreeMemory > 0 && systemFreeMemory < megabytes) {
255
37e1c910c8f5 disable requireMemeory failure and replace with a warning
smith@nwoca.org
parents: 254
diff changeset
669 println "WARNING: potentially insufficent OS memory for this build"
37e1c910c8f5 disable requireMemeory failure and replace with a warning
smith@nwoca.org
parents: 254
diff changeset
670 // throw new GradleException("insufficent free OS memory for this build (available: ${systemFreeMemory}m, required: ${megabytes}m)")
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
671 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
672 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
673 /**
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
674 * Returns maximum memory available upto the value specified.
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
675 */
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
676 int maxMemory(int megabytes) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
677 if (systemFreeMemory) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
678 [systemFreeMemory,megabytes].min()
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
679 } else { megabytes }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
680
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
681 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
682
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
683 void requireJava(String version) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
684
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
685 if ( version && !javaVersion.startsWith(version)) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
686 throw new GradleException("Requires java version $version but running under $javaVersion")
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
687 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
688 }
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
689
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
690 }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
691
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
692
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
693 @TupleConstructor
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
694 @Sortable
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
695 class Version {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
696
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
697 Integer major = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
698 Integer minor = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
699 Integer patch = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
700 Boolean snapshot = true
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
701
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
702 Version nextMajor() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
703 new Version(major + 1, 0, 0, false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
704 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
705
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
706 Version nextMinor() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
707 if (snapshot) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
708 new Version(major, minor , 0,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
709 } else {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
710 new Version(major, minor + 1, 0,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
711 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
712 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
713
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
714 Version nextPatch() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
715 new Version(major, minor, patch + 1,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
716 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
717
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
718 Version nextSnapshot() {
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
719 new Version(major, minor + 1, 0)
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
720 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
721
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
722 boolean isHotfix() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
723 !snapshot && patch > 0
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
724 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
725
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
726 String toString() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
727 "${major}.${minor}.${patch}${snapshot ? '.SNAPSHOT' : ''}"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
728 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
729
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
730 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
731
247
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
732 void setBranchInfo() {
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
733 gradle.ext.branch = new BranchInfo(System.getenv('bamboo_planRepository_branch'))
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
734 gradle.ext.branchName = gradle.branch.name
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
735 gradle.ext.branchStream = gradle.branch.stream
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
736 gradle.ext.branchHash = gradle.branch.hash
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
737 println "${gradle.hgRepositoryUrl} ${gradle.branch} ${gradle.branch.version}"
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
738 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
739
254
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
740
210
068d09f5b627 improve deploy name
smith@nwoca.org
parents: 209
diff changeset
741 @ToString(includes=['name','shortName','buildVersion','imageId','deployName'],includeNames= true)
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
742 class BranchInfo {
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
743 def name
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
744 def stream = "none"
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
745 def buildNumber = ""
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
746 def changeset = ""
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
747 def version
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
748
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
749 BranchInfo(name) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
750 this.name = name
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
751 if (!name) {
184
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
752 this.name = determineName() ?: ''
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
753 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
754 this.name = this.name.replace('@', '-')
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
755 determineStream()
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
756 buildNumber = System.getenv('bamboo_buildNumber') ?: ""
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
757 changeset = System.getenv('bamboo_planRepository_revision') ?: ""
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
758 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
759
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
760 String getDefaultDependencyStatus() {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
761 return isRelease() ? 'release' : 'integration'
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
762 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
763
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
764 private boolean isRelease() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
765 return stream in ['release', 'hotfix']
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
766 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
767
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
768 def getShortName() {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
769 def result = name.contains('/') ? name.split('/')[1] : name
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
770 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
771
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
772 String getBuildVersion() {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
773 def v = isRelease() ? shortName - "v": ""
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
774 return v
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
775 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
776
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
777 def Version getVersion() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
778 if (!version) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
779 if (isRelease()) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
780 version = new Version(*getBuildVersion().split('\\.')*.toInteger(), false)
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
781 } else {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
782 version = findSnapshotVersion()
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
783 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
784 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
785 return version
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
786 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
787
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
788 def getImageId() {
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
789 (buildVersion ?: shortName.take(25)) + (buildNumber ? "-${buildNumber}" : "-0")
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
790 }
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
791
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
792 def getDeployName() {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
793 (buildVersion ?: shortName.take(25)).toLowerCase().collectReplacements {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
794 ('a'..'z').contains(it) || ('0'..'9').contains(it) || it == "-" ? null : '-'
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
795 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
796 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
797
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
798 def getHash() {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
799 generateMD5(name)
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
800 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
801 def generateMD5(String s) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
802 def digest = java.security.MessageDigest.getInstance("MD5")
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
803 digest.update(s.bytes);
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
804 new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0')
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
805 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
806
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
807 private findSnapshotVersion() {
257
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
808
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
809 try {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
810 def repositoryUrl = System.getenv('bamboo_planRepository_repositoryUrl')
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
811 if (repositoryUrl) {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
812 println "hg pull $repositoryUrl".execute().text
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
813 }
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
814 def versions = "hg branches --closed".execute().text.split('\n').findAll {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
815 it.startsWith( 'release') || it.startsWith( 'hotfix')
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
816 }.collect {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
817 it.replaceAll('\\s+',' ').split(' ')[0].split('/')[1] - 'v'
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
818 }.collect {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
819 new Version(*it.split('\\.')*.toInteger())
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
820 }.sort { v1, v2 -> v2 <=> v1 }
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
821
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
822 return versions ? versions.first().nextSnapshot() : new Version().nextSnapshot()
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
823
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
824 } catch (e) {
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
825 return new Version().nextSnapshot()
233
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
826 }
257
70b500eef001 fix hg dependency
smith@nwoca.org
parents: 256
diff changeset
827
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
828 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
829
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
830
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
831 def determineName() {
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
832 try {
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
833 def branch = "hg branch".execute().text.trim()
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
834 def rawParents = 'hg parents'.execute().text
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
835 def parent = rawParents.split('\n').find { it.startsWith("branch") }?.split(":")?.getAt(1)?.trim()
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
836 return parent ?: branch
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
837 } catch (e) {
184
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
838 ['.hg/branch', '../.hg/branch'].findResult {
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
839 new File(it).exists() ? new File(it).text : null
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
840 }
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
841 }
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
842 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
843
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
844 void determineStream() {
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
845 def flowConfig = new File('.hgflow').exists() ? new File('.hgflow') : new File('../.hgflow')
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
846 if (flowConfig.exists()) {
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
847 def flows = new Properties()
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
848 flows.load(flowConfig.newReader())
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
849 flows.stringPropertyNames().each {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
850 if (!it.startsWith("[") && name.startsWith(flows.getProperty(it))) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
851 stream = it
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
852 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
853 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
854 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
855 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
856
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
857 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
858