annotate init20.gradle @ 256:91e05187fd79

split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
author smith@nwoca.org
date Wed, 06 Jun 2018 23:15:28 +0100
parents 37e1c910c8f5
children 70b500eef001
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 {
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
8 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
9 maven { url 'http://repos.ssdt.nwoca.org/artifactory/ssdt-repo' }
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 }
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
188 }
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
189 }
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
190
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
191 task cleanLocal(description: "removes all artifacts from developer's local repository") {
84
fa7b349201eb add descriptions to tasks
smith@nwoca.org
parents: 83
diff changeset
192
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
193 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
194 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
195 if (local) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
196 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
197 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
198 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
199 localDir.deleteDir()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
200 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
201 if (localDir.exists()) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
202 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
203 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
204 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
205 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
206 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
207
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
208 cleanLocal.onlyIf {
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
209 project.repositories.any { it.name == 'local' }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
210 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
211
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
212 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
213
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
214 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
215 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
216 // 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
217 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
218 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
219 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
220 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
221 ext.propertyFile = "${e.toLowerCase()}.properties"
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
222 ext.buildenv = project.file('build/buildenv.txt')
181
d90208c97ec5 use artifactory script for gradle 2.0
smith@nwoca.org
parents: 180
diff changeset
223 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
224 outputs.files new File(outputDir,propertyFile), buildenv
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
225 outputs.upToDateWhen {
245
df4f5bad8782 ensure property files exist in output task
smith@nwoca.org
parents: 241
diff changeset
226 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
227 }
161
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
228 doLast {
250
88d5807ea351 USASR-2891: Add back removed creation of directory
Christopher Springer <springer@nwoca.org>
parents: 249
diff changeset
229 t.mkdirs()
249
35c7933572f8 USASR-2891: Change creation of directories to use outputDir
Christopher Springer <springer@nwoca.org>
parents: 247
diff changeset
230 outputDir.mkdirs()
180
1bdb6e1f2fdb handle outputs update handling including env changes
smith@nwoca.org
parents: 179
diff changeset
231 buildenv.text = gradle.env
173
50db7a832af5 add subproject name when generating properties
smith@nwoca.org
parents: 172
diff changeset
232 def ps = gradle."environment${e}".toProperties()
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
233 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
234 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
235 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
236 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
237 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
238 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
239 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
240 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
241 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
242 }
8dd6adab9388 add Rule for converting arbitrary environment's to property files
Dave Smith <smith@nwoca.org>
parents: 160
diff changeset
243
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
244 if (gradle.hasProperty('environmentDatabase')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
245 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
246 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
247 task(taskName) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
248 doLast {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
249 def dropIt = taskName.contains("Drop")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
250 def createIt = taskName.contains("Create")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
251 def driverName = gradle.environmentDatabase.jdbc.driverClassName
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
252 def databaseUrl = gradle.environmentDatabase.jdbc.url
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
253 if (driverName != "org.postgresql.Driver") {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
254 logger.info "skipping database operation for non-postgresql driver"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
255 throw new StopActionException("driver $driverName not supported by $taskName")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
256 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
257 if (!configurations.hasProperty('jdbcdriver')) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
258 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
259 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
260 configurations.jdbcdriver.each { File file ->
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
261 GroovyObject.class.classLoader.addURL(file.toURL())
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
262 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
263 Class.forName(driverName)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
264 def url = new URI(databaseUrl.substring(5))
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
265 def jdbcBaseUrl = databaseUrl - url.path
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
266 def databaseName = url.path - "/"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
267 def adminUrl = jdbcBaseUrl + "/postgres"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
268 def sql = Sql.newInstance(adminUrl,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
269 gradle.environmentDatabase.jdbc.username,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
270 gradle.environmentDatabase.jdbc.password,
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
271 driverName)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
272 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
273 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
274 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
275 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
276 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
277 logger.info "dropping $databaseName (if exists) from $adminUrl"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
278 sql.execute 'DROP DATABASE IF EXISTS "' + databaseName + '";'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
279 }
174
e949e86b570e add databaseDrop|Create tasks for managing environment psql databases
smith@nwoca.org
parents: 173
diff changeset
280
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
281 if (createIt) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
282 logger.info "Creating database $databaseName at $adminUrl"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
283 sql.execute 'CREATE DATABASE "' + databaseName + '";'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
284 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
285 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
286 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
287
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
288 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
289 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
290 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
291
230
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
292 }
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
293
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
294 rootProject.afterEvaluate {
e902c107f5db apply release rules only to root project
smith@nwoca.org
parents: 229
diff changeset
295
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
296 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
297
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
298 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
299
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
300 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
301 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
302 }
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
303
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
304 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
305
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 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
307 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
308 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
309 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
310 }
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 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
312
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
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 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
315 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
316 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
317 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
318 }
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 }
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
91e05187fd79 split release branch creation and dependency lock into separate steps. Force correct deletion of global lock
smith@nwoca.org
parents: 255
diff changeset
322 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
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(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
325 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
326 }
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
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 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
329 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
330 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
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
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
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
335 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
336 if (matcher.matches()) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
337
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
338 dependencyLock.globalLockFile = 'release.lock'
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
339
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
340 task('doReleaseBranch') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
341 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
342 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
343 def releaseVersion = determineReleaseVersion(requested)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
344 def releaseStream = releaseVersion.isHotfix() ? 'hotfix' : 'release'
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
345
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
346 println "-" * 60
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
347 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
348 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
349 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
350 println()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
351 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
352 println "\tversion:\t${releaseVersion}"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
353 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
354 println()
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
355 println("-" * 60)
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
356 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
357 println("-" * 60)
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
358
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
359 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
360
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
361 println "-" * 60
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
362
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
363 if (!confirmPrompt("Continue?")) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
364 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
365 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
366
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
367 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
368 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
369
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
370 setBranchInfo()
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
371
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
372 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
373 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
374 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
375
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
376 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
377 }
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
378
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
379
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
380 def branchTasks = ['doReleaseBranch']
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
381
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
382 task(taskName) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
383 dependsOn branchTasks
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
384 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
385
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
386 branchTasks.tail().inject(branchTasks.head()) { a, b ->
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
387 tasks[b].mustRunAfter a
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
388 b
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
389 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
390
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 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
393
75
02cc8e50945e allow local file repo for local builds
smith@nwoca.org
parents: 74
diff changeset
394 }
02cc8e50945e allow local file repo for local builds
smith@nwoca.org
parents: 74
diff changeset
395
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
396 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
397 String _message = "> $message" + (defaultValue ? " [$defaultValue] " : "")
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
398 if (System.console()) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
399 return System.console().readLine(_message) ?: defaultValue
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 println "$_message "
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 System.in.newReader().readLine() ?: defaultValue
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
404 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
405
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
406 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
407 String defaultStr = defaultValue ? 'Y' : 'n'
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
408 String consoleVal = readLine("${message} (Y|n)", defaultStr)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
409 if (consoleVal) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
410 return consoleVal.toLowerCase().startsWith('y')
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
411 }
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 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 Version determineReleaseVersion(String requested) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
417 if (requested == 'major') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
418 return gradle.branch.version.nextMajor()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
419 } else if (requested == 'minor') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
420 return gradle.branch.version.nextMinor()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
421 } else if (requested == 'patch') {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
422 return gradle.branch.version.nextPatch()
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
423 } else {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
424 return new Version(*requested.split(/\./)*.toInteger(), false)
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 }
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
427
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
428 class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
429
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
430 def void projectsEvaluated(Gradle gradle) {
83
9c551ecc816a clean up script to be more maintainable
smith@nwoca.org
parents: 82
diff changeset
431 def ssdtArtifactory = 'http://repos.ssdt.nwoca.org/artifactory'
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
432 Project root = gradle.getRootProject()
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
433
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
434
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
435 def branchVersioning = gradle.rootProject.version == 'unspecified'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
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 root.allprojects {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
438
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
439 def thisProject = delegate
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
440 thisProject.status = 'integration'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
441 if (gradle.branchStream) {
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
442 if (branchVersioning) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
443 thisProject.version = gradle.branch.version
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
444 thisProject.status = gradle.branch.defaultDependencyStatus
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
445 } else {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
446
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
447 thisProject.status = 'integration'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
448 def fixupVersion = thisProject.version - ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
449 if (gradle.branchStream == 'feature') {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
450 fixupVersion = fixupVersion + ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
451 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
452 if (gradle.branchStream == 'develop') {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
453 fixupVersion = fixupVersion + ".SNAPSHOT"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
454 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
455 if (gradle.branchStream in ['production', 'release', 'hotfix']) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
456 thisProject.status = 'release'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
457 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
458 thisProject.version = fixupVersion
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
459 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
460 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
461
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
462 repositories {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
463
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
464 if (!gradle.bambooBuild) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
465 ivy {
81
36b2fd9e3861 fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents: 80
diff changeset
466 name = 'local'
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
467 artifactPattern gradle.ivyUserDir + '/local/[artifact]-[revision](-[classifier]).[ext]'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
468 ivyPattern gradle.ivyUserDir + "/local/[module]-ivy-[revision].xml"
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
469 }
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
470 }
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
471
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
472 if (gradle.branchStream == 'feature') {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
473 ivy {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
474 name = 'ssdt-branches'
177
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
475 url = "${ssdtArtifactory}/ssdt-branches/${gradle.branchHash}/"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
476 layout "pattern", {
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
477 artifact "[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
478 ivy "[organization]/[module]/ivy-[revision].xml"
629ee17d6f39 convert branch repo to pattern layout
smith@nwoca.org
parents: 176
diff changeset
479 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
480 }
74
a622ec40a570 update repo definitions
smith@nwoca.org
parents: 73
diff changeset
481 }
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
482
175
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-snapshots'
176
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
485 url = "${ssdtArtifactory}/ssdt-snapshots"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
486 layout "pattern", {
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
487 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
488 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
489 ivy "[organization]/[module]/ivy-[revision].xml"
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
490 m2compatible = true
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
491 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
492 }
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
493
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
494 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
495 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
496 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
497 }
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
498
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
499 }
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
500
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
501 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
502 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
503 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
504 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
505 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
506 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
507 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
508 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
509 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
510
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
511
176
e0865f323a60 correct layouts for ssdt repositories. remove ssdt-releases repo
smith@nwoca.org
parents: 175
diff changeset
512 if (thisProject.repositories.find { it.name == 'local' } && thisProject.getTasksByName('uploadArchives', false)) {
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
513 uploadArchives {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
514 repositories {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
515 add thisProject.repositories.local
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
516 }
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
517 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
518
126
b2532280341e CM-133: switch to sonar-runner
smith@nwoca.org
parents: 124
diff changeset
519 thisProject.tasks.create("publishLocal") {
87
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
520 description = "Publishes this projects artifacts to developer's local repository"
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
521 dependsOn = ["uploadArchives"]
be111b66cdc6 fix publishlocal task
smith@nwoca.org
parents: 85
diff changeset
522 }
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
523 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
524
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
525 }
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
526
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
527 root.subprojects { p ->
124
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
528 if (root.useIndy()) {
81a8ecfbc8fa update init script to support groovy indy builds
smith@nwoca.org
parents: 123
diff changeset
529 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
530 if (groovyIndy) {
203
e90ce1d50d85 add java version display
smith@nwoca.org
parents: 200
diff changeset
531 println "enabling indy compilation on $p"
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
532 [compileGroovy.groovyOptions, compileTestGroovy.groovyOptions]*.with {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
533 optimizationOptions = [indy: true]
124
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 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
536 }
73
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
537 }
174b4bcfd2f2 fix gradle init script
smith@nwoca.org
parents:
diff changeset
538 }
95
ebb42488396a modify wrapper to use gradle version when executed
smith@nwoca.org
parents: 94
diff changeset
539 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
540
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
541
241
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
542 task showEnvironments {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
543
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
544 doLast {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
545 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
546 gradle.environments.each { e ->
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
547 println "\n $e:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
548 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
549 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
550 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
551 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
552 if (logger.isInfoEnabled()) {
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
553 println "System properties:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
554 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
555 println "env variables:"
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
556 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
557 }
1c91b76fd9a3 USASR-2436: Remove usages of leftShift in favor of doLast
Christopher Springer <springer@nwoca.org>
parents: 240
diff changeset
558 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
559 }
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
560
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
561 def loadEnvironments() {
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
562 def developerPrivate = new Properties()
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
563 if (file('private.properties').exists()) {
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
564 developerPrivate.load(file('private.properties').newReader())
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
565 }
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
566 def envOverrides = [:]
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
567
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
568 if (!hasProperty('env')) {
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
569 gradle.ext.env = developerPrivate.env ?: 'dev'
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
570 } else {
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
571 def values = getProperty('env').split(',')
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
572 gradle.ext.env = values.first()
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
573 values.tail().each {
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
574 def (k, v) = it.split('=')
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
575 envOverrides.put(k, v)
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
576 }
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
577 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
578
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
579 println "Environment is: $gradle.env ($envOverrides)"
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
580 def slurper = new ConfigSlurper(gradle.env)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
581 slurper.setBinding(['gradle': gradle])
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
582
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
583 def environment = slurper.parse(
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
584 '''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
585 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
586 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
587 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
588 }''')
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
589 if (developerPrivate['deploy.mode']) {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
590 environment.put('deploy.mode', developerPrivate['deploy.mode'])
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
591 }
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
592
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
593 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
594 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
595 def environments = []
162
29c3af8dc031 add default global deploy.mode
Dave Smith <smith@nwoca.org>
parents: 161
diff changeset
596 gradle.ext.environment = environment
163
c5f09d617715 process environment files in name order
Dave Smith <smith@nwoca.org>
parents: 162
diff changeset
597 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
598 def envName = envFile.name - '.groovy'
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
599 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
600 logger.info("loading environment $envFile.name")
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
601
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
602 def envCfg = slurper.parse(envFile.toURL())
99
333e489c1188 add ivy artifact by name pattern
smith@nwoca.org
parents: 98
diff changeset
603 envCfg.merge(slurper.parse(developerPrivate))
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
604 envCfg.put('ssdt.projectid', gradle.ssdtProjectId)
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
605 envCfg.put('ssdt.environment', gradle.env)
107
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
606 if (privateFile.exists()) {
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
607 logger.info("loading private environment $privateFile")
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
608 envCfg.merge(slurper.parse(privateFile.toURL()))
167745cd8af9 add support for private environment files in slurper format
smith@nwoca.org
parents: 106
diff changeset
609 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
610
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
611 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
612 it.value.split(',').each { p ->
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
613 def (k, v) = p.split('=')
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
614 logger.info("$envName: overriding " + k + "=" + v + " in $it")
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
615 envCfg.put(k, v)
105
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
616 }
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
617 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
618
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
619 envOverrides.each { k, v ->
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
620 logger.info("$envName: overriding " + k + "=" + v)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
621 envCfg.put(k, v)
106
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
622 }
34bb1f5b9027 support setting env and overriding of specific properties
smith@nwoca.org
parents: 105
diff changeset
623 environment.merge(envCfg)
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
624 if (envName != 'environment') {
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
625 gradle.ext[envName] = envCfg
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
626 environments << envName
99
333e489c1188 add ivy artifact by name pattern
smith@nwoca.org
parents: 98
diff changeset
627 }
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
628 }
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
629 environment.merge(slurper.parse(developerPrivate))
175
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
630 def deployMode = environment.deploy.mode ?: 'development'
c3b7af90d1e4 start init script for gradle version 2.*
smith@nwoca.org
parents: 174
diff changeset
631 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
632 environments << 'environment'
101
df191eeb14ac USASR-800: upgrade for grale 1.0-ml9
smith@nwoca.org
parents: 100
diff changeset
633 gradle.ext.environments = environments
105
f7b0f9d286b8 allow environment variables to be overridden on command line
smith@nwoca.org
parents: 104
diff changeset
634
97
bdc17bcaf797 CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents: 96
diff changeset
635 }
166
9947c2c8ff44 switch to hash for layout of feature branches
Dave Smith <smith@nwoca.org>
parents: 165
diff changeset
636
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
637
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
638 @ToString(includeNames=true)
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
639 class RuntimeInfo {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
640 // OS memory in megabytes, zero if unknown
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
641 int systemMemory = 0
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
642 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
643 String javaVersion = System.getProperty('java.version')
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
644
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
645 RuntimeInfo() {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
646 try {
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
647 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
648 int value = (it[1] as Long) / 1024
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
649 if (it[0].startsWith('MemTotal')) { systemMemory = value }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
650 if (it[0].startsWith('MemFree')) { systemFreeMemory = value }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
651 }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
652
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
653 } catch (e) { }
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 }
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
656
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
657 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
658 if (systemFreeMemory > 0 && systemFreeMemory < megabytes) {
255
37e1c910c8f5 disable requireMemeory failure and replace with a warning
smith@nwoca.org
parents: 254
diff changeset
659 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
660 // 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
661 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
662 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
663 /**
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
664 * 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
665 */
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 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
667 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
668 [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
669 } 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
670
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 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
674
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 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
676 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
677 }
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 }
188
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
679
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
680 }
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
681
711ef14d18d2 add object to determine available memory on linux
smith@nwoca.org
parents: 187
diff changeset
682
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
683 @TupleConstructor
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
684 @Sortable
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
685 class Version {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
686
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
687 Integer major = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
688 Integer minor = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
689 Integer patch = 0
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
690 Boolean snapshot = true
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
691
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
692 Version nextMajor() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
693 new Version(major + 1, 0, 0, false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
694 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
695
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
696 Version nextMinor() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
697 if (snapshot) {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
698 new Version(major, minor , 0,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
699 } else {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
700 new Version(major, minor + 1, 0,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
701 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
702 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
703
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
704 Version nextPatch() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
705 new Version(major, minor, patch + 1,false)
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
706 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
707
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
708 Version nextSnapshot() {
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
709 new Version(major, minor + 1, 0)
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
710 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
711
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
712 boolean isHotfix() {
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
713 !snapshot && patch > 0
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
714 }
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
715
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
716 String toString() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
717 "${major}.${minor}.${patch}${snapshot ? '.SNAPSHOT' : ''}"
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
718 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
719
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
247
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
722 void setBranchInfo() {
ecae2b9a41d3 add code to stamp build number into build-number.txt lost in bamboo 5
smith@nwoca.org
parents: 246
diff changeset
723 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
724 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
725 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
726 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
727 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
728 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
729
254
4e57e2edb2ad calculate docker engine url
smith@nwoca.org
parents: 252
diff changeset
730
210
068d09f5b627 improve deploy name
smith@nwoca.org
parents: 209
diff changeset
731 @ToString(includes=['name','shortName','buildVersion','imageId','deployName'],includeNames= true)
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
732 class BranchInfo {
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
733 def name
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
734 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
735 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
736 def changeset = ""
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
737 def version
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
738
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
739 BranchInfo(name) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
740 this.name = name
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
741 if (!name) {
184
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
742 this.name = determineName() ?: ''
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
743 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
744 this.name = this.name.replace('@', '-')
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
745 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
746 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
747 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
748 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
749
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
750 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
751 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
752 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
753
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
754 private boolean isRelease() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
755 return stream in ['release', 'hotfix']
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
756 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
757
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
758 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
759 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
760 }
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
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 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
763 def v = isRelease() ? shortName - "v": ""
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
764 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
765 }
215
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 def Version getVersion() {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
768 if (!version) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
769 if (isRelease()) {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
770 version = new Version(*getBuildVersion().split('\\.')*.toInteger(), false)
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
771 } else {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
772 version = findSnapshotVersion()
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
773 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
774 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
775 return version
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
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
778 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
779 (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
780 }
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
781
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
782 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
783 (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
784 ('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
785 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
786 }
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
787
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
788 def getHash() {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
789 generateMD5(name)
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
790 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
791 def generateMD5(String s) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
792 def digest = java.security.MessageDigest.getInstance("MD5")
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
793 digest.update(s.bytes);
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
794 new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0')
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
795 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
796
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
797 private findSnapshotVersion() {
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
798 def repositoryUrl = System.getenv('bamboo_planRepository_repositoryUrl')
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
799 if (repositoryUrl) {
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
800 println "hg pull $repositoryUrl".execute().text
400f9d8bbf5b DEP-13: enable sonar analysis for gradle 3.1 projects. disable sonar for ant based projects
smith@nwoca.org
parents: 232
diff changeset
801 }
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
802 def versions = "hg branches --closed".execute().text.split('\n').findAll {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
803 it.startsWith( 'release') || it.startsWith( 'hotfix')
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
804 }.collect {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
805 it.replaceAll('\\s+',' ').split(' ')[0].split('/')[1] - 'v'
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
806 }.collect {
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
807 new Version(*it.split('\\.')*.toInteger())
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
808 }.sort { v1, v2 -> v2 <=> v1 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
809
219
efa545c6dd65 DEP-11: implement release process as gradle rule
smith@nwoca.org
parents: 216
diff changeset
810 return versions ? versions.first().nextSnapshot() : new Version().nextSnapshot()
215
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
811
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
812 }
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
813
5bebb590b30e DEP-11: determine project version based on branch
smith@nwoca.org
parents: 214
diff changeset
814
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
815 def determineName() {
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
816 try {
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
817 def branch = "hg branch".execute().text.trim()
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
818 def rawParents = 'hg parents'.execute().text
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
819 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
820 return parent ?: branch
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
821 } catch (e) {
184
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
822 ['.hg/branch', '../.hg/branch'].findResult {
acd8d3b58440 handle branches while in subproject
smith@nwoca.org
parents: 183
diff changeset
823 new File(it).exists() ? new File(it).text : null
183
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
824 }
358fdd20674a determine branch when hg not available
smith@nwoca.org
parents: 182
diff changeset
825 }
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
826 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
827
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
828 void determineStream() {
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
829 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
830 if (flowConfig.exists()) {
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
831 def flows = new Properties()
179
f9087f939b0a correct handling of hgflow file when in subproject
smith@nwoca.org
parents: 178
diff changeset
832 flows.load(flowConfig.newReader())
178
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
833 flows.stringPropertyNames().each {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
834 if (!it.startsWith("[") && name.startsWith(flows.getProperty(it))) {
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
835 stream = it
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
836 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
837 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
838 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
839 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
840
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
841 }
5a3a875a1f3e cleanup branch handling
smith@nwoca.org
parents: 177
diff changeset
842