annotate init20.gradle @ 261:b7b65152446e

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