Mercurial > public > develkit
annotate init.gradle @ 107:167745cd8af9
add support for private environment files in slurper format
author | smith@nwoca.org |
---|---|
date | Mon, 04 Jun 2012 23:36:30 +0100 |
parents | 34bb1f5b9027 |
children | 029db4d977fe |
rev | line source |
---|---|
91 | 1 |
101 | 2 gradle.ext.ssdtDevelkitLocation = gradle.ext.has('ssdtDevelkitLocation') ? gradle.ssdtDevelkitLocation : 'http://hg.ssdt-ohio.org/browse/public/develkit' |
73 | 3 |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
4 ant.property(file: System.getProperty('user.home') + "/.ssdt/private.properties") |
101 | 5 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
|
6 |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
7 loadEnvironments() |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
8 |
73 | 9 gradle.addListener(new ArtifactoryGradleSettings()) |
10 | |
101 | 11 gradle.ext.bambooBuild = System.getenv().any { it.key.startsWith('BAMBOO')} |
79 | 12 logger.info "applying SSDT artifactory Gradle Settings (bamboo: $gradle.bambooBuild)" |
13 | |
14 if (gradle.bambooBuild) { | |
102 | 15 gradle.ext.ssdtGradlekitLocation = gradle.ext.has('ssdtGradlekitLocation') ? gradle.ssdtGradlekitLocation : 'http://hg.ssdt-ohio.org/ssdt/gradlekit/raw-file/tip' |
85 | 16 apply from: "${gradle.ssdtGradlekitLocation}/artifactory.gradle" |
79 | 17 } |
76 | 18 |
85 | 19 apply from: "${gradle.ssdtDevelkitLocation}/metrics.gradle" |
20 | |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
21 task wrapper(type: Wrapper) {} |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
22 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
23 wrapper << { |
83 | 24 // patch wrapper path for 1.0-milestone-7 (http://issues.gradle.org/browse/GRADLE-1823) |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
25 ant.replace(file: 'gradlew', token: '\\wrapper\\gradle-wrapper.jar',value:'/wrapper/gradle-wrapper.jar') |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
26 } |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
27 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
28 allprojects { |
85 | 29 |
84 | 30 task cleanLocal(description: "removes all artifacts from developer's local repository") << { |
31 | |
75 | 32 def local = project.repositories.find { it.name == 'local' } |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
33 if ( local ) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
34 logger.info "removing local repo: $it" |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
35 new File(System.properties['user.home'] + "/.ssdt/local-repo").deleteDir() |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
36 new File(gradle.ivyUserDir + "/local").deleteDir() |
75 | 37 } |
79 | 38 } |
85 | 39 |
78
e47f80ef056b
finish cleanLocal. start adding artifactory plugin
smith@nwoca.org
parents:
77
diff
changeset
|
40 cleanLocal.onlyIf { |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
41 project.repositories.any { it.name == 'local' } |
79 | 42 } |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
43 |
75 | 44 } |
45 | |
73 | 46 class ArtifactoryGradleSettings extends BuildAdapter implements BuildListener { |
79 | 47 |
73 | 48 def void projectsEvaluated(Gradle gradle) { |
83 | 49 def ssdtArtifactory = 'http://repos.ssdt.nwoca.org/artifactory' |
79 | 50 Project root = gradle.getRootProject() |
104 | 51 root.allprojects { |
83 | 52 def thisProject = delegate |
74 | 53 configurations.all { |
54 resolutionStrategy.cacheChangingModulesFor 120, 'minutes' | |
55 resolutionStrategy.cacheDynamicVersionsFor 120, 'minutes' | |
79 | 56 } |
73 | 57 repositories { |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
58 if (!gradle.bambooBuild) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
59 add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) { |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
60 name = 'local' |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
61 addIvyPattern gradle.ivyUserDir + "/local/[module]-ivy-[revision].xml" |
100 | 62 addArtifactPattern gradle.ivyUserDir + '/local/[module]-[artifact]-[revision](-[classifier]).[ext]' |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
63 descriptor = 'optional' |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
64 checkmodified = true |
94
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
65 changingMatcher = 'regexp' |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
66 changingPattern = '.*SNAPSHOT' |
1290b23e7b76
modify ivy and gradle to use same local repo
smith@nwoca.org
parents:
92
diff
changeset
|
67 force = true |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
68 } |
79 | 69 } |
74 | 70 add(new org.apache.ivy.plugins.resolver.URLResolver()) { |
83 | 71 name = 'ssdt-snapshots' |
72 m2compatible = true | |
101 | 73 def url = "${ssdtArtifactory}/ssdt-snapshots" |
83 | 74 addArtifactPattern("${url}/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]") |
99 | 75 addArtifactPattern("${url}/[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]") |
83 | 76 addIvyPattern("${url}/[organization]/[module]/ivy-[revision].xml") |
77 checkmodified = true | |
78 changingMatcher = 'regexp' | |
79 changingPattern = '.*SNAPSHOT' | |
74 | 80 } |
83 | 81 add(new org.apache.ivy.plugins.resolver.URLResolver()) { |
82 name = 'ssdt-releases' | |
83 m2compatible = false | |
101 | 84 def url = "${ssdtArtifactory}/ssdt-releases" |
83 | 85 addArtifactPattern("${url}/[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]") |
99 | 86 addArtifactPattern("${url}/[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]") |
83 | 87 addIvyPattern("${url}/[organization]/[module]/ivy-[revision].xml") |
74 | 88 } |
83 | 89 mavenRepo name: 'ssdt-repo', url: "${ssdtArtifactory}/ssdt-repo" |
75 | 90 |
91 } | |
81
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
92 |
36b2fd9e3861
fix handling of multi-project artifacts and local repos
smith@nwoca.org
parents:
80
diff
changeset
|
93 if ( thisProject.repositories.find { it.name == 'local' } ) { |
87 | 94 uploadArchives { |
95 repositories { | |
96 add thisProject.repositories.local | |
97 } | |
98 } | |
85 | 99 |
87 | 100 thisProject.tasks.add("publishLocal") { |
101 description = "Publishes this projects artifacts to developer's local repository" | |
102 dependsOn = ["uploadArchives"] | |
103 } | |
75 | 104 } |
73 | 105 } |
106 } | |
95
ebb42488396a
modify wrapper to use gradle version when executed
smith@nwoca.org
parents:
94
diff
changeset
|
107 } |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
108 |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
109 |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
110 task showEnvironments << { |
103 | 111 println "Defined environments: $gradle.environments" |
112 gradle.environments.each { e -> | |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
113 println "\n $e:" |
105
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
114 gradle.getProperty(e).flatten().each { k, v -> |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
115 println String.format(' %25s = %s',k, k.contains('password') ? "********" : v ) |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
116 } |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
117 } |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
118 } |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
119 |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
120 def loadEnvironments() { |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
121 def developerPrivate = new Properties() |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
122 if (file('private.properties').exists()) { |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
123 developerPrivate.load(file('private.properties').newReader()) |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
124 } |
106
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
125 def envOverrides = [:] |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
126 |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
127 if ( !hasProperty('env') ) { |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
128 gradle.ext.env = developerPrivate.env ?: 'dev' |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
129 } else { |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
130 def values = getProperty('env').split(',') |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
131 gradle.ext.env = values.first() |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
132 values.tail().each { |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
133 def (k,v) = it.split('=') |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
134 envOverrides.put(k,v) |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
135 } |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
136 } |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
137 |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
138 println "Environment is: $gradle.env ($envOverrides)" |
101 | 139 def slurper = new ConfigSlurper(gradle.env) |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
140 def environment = new ConfigObject() |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
141 def environments = [] |
105
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
142 |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
143 file('.').eachFileMatch(~/^environment.*\.groovy$/) { envFile -> |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
144 def envName = envFile.name - '.groovy' |
107
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
145 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
|
146 logger.info("loading environment $envFile.name") |
107
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
147 |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
148 def envCfg = slurper.parse(envFile.toURL()) |
99 | 149 envCfg.merge(slurper.parse(developerPrivate)) |
107
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
150 if (privateFile.exists()) { |
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
151 logger.info("loading private environment $privateFile") |
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
152 envCfg.merge(slurper.parse(privateFile.toURL())) |
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
153 } |
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
154 |
105
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
155 gradle.rootProject.getProperties().find { it.key.startsWith('environment') }.each { |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
156 it.value.split(',').each { p -> |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
157 def (k,v) = p.split('=') |
107
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
158 logger.info("$envName: overriding " + k + "=" + v + " in $it") |
105
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
159 envCfg.put(k,v) |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
160 } |
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
161 } |
107
167745cd8af9
add support for private environment files in slurper format
smith@nwoca.org
parents:
106
diff
changeset
|
162 |
106
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
163 envOverrides.each { k,v -> |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
164 logger.info("$envName: overriding " + k + "=" + v) |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
165 envCfg.put(k,v) |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
166 } |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
167 environment.merge(envCfg) |
34bb1f5b9027
support setting env and overriding of specific properties
smith@nwoca.org
parents:
105
diff
changeset
|
168 if (envName != 'environment' ) { |
101 | 169 gradle.ext[envName] =envCfg |
99 | 170 environments << envName |
171 } | |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
172 } |
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
173 environment.merge(slurper.parse(developerPrivate)) |
99 | 174 environments << 'environment' |
101 | 175 gradle.ext.environment = environment |
176 gradle.ext.environments = environments | |
105
f7b0f9d286b8
allow environment variables to be overridden on command line
smith@nwoca.org
parents:
104
diff
changeset
|
177 |
97
bdc17bcaf797
CM-130: add standard 'environment' handling for SSDt projects
smith@nwoca.org
parents:
96
diff
changeset
|
178 } |