annotate init20.gradle @ 336:6258c89efe9e

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