| 4937 |
dpurdie |
1 |
//
|
|
|
2 |
// Create a global expando class to hold global variables
|
|
|
3 |
def JatsGlobals = new Expando( noAndroidProjectSeen:0)
|
|
|
4 |
|
|
|
5 |
//
|
|
|
6 |
// Create a hook before any of the projects are evaluated
|
|
|
7 |
gradle.projectsLoaded { g ->
|
|
|
8 |
println 'Gradle Version : ' + gradle.gradleVersion;
|
|
|
9 |
println 'Gradle Home Dir : ' + gradle.gradleHomeDir;
|
|
|
10 |
println 'Gradle UserHome Dir : ' + gradle.gradleUserHomeDir;
|
|
|
11 |
println 'GBE_VERSION_NAME : ' + gradle.rootProject.GBE_VERSION_NAME
|
|
|
12 |
println 'GBE_VERSION_CODE : ' + gradle.rootProject.GBE_VERSION_CODE
|
|
|
13 |
|
|
|
14 |
// gradle.rootProject.properties.sort{it.key}.each { k,v->
|
|
|
15 |
// println " Root Property: $k = $v"
|
|
|
16 |
// }
|
|
|
17 |
|
|
|
18 |
// System.properties.sort{it.key}.each { k,v->
|
|
|
19 |
// println " System Property: $k = $v"
|
|
|
20 |
// }
|
|
|
21 |
//
|
|
|
22 |
// gradle.properties.sort{it.key}.each { k,v->
|
|
|
23 |
// println " Gradle Property: $k = $v"
|
|
|
24 |
// }
|
|
|
25 |
}
|
|
|
26 |
|
|
|
27 |
//
|
|
|
28 |
// Create a hook after all the projects have been evaluted
|
|
|
29 |
gradle.projectsEvaluated { g ->
|
|
|
30 |
// JatsGlobals.properties.sort{it.key}.each { k,v->
|
|
|
31 |
// println "JatsGlobals Property: $k = $v"
|
|
|
32 |
// }
|
|
|
33 |
|
|
|
34 |
// Ensure that we have seen an android project with injected version information
|
|
|
35 |
//
|
|
|
36 |
if (JatsGlobals.noAndroidProjectSeen < 1)
|
|
|
37 |
{
|
|
|
38 |
logger.error ("ERROR: No android projects found")
|
|
|
39 |
throw new GradleException('JATS Version Check failed')
|
|
|
40 |
}
|
|
|
41 |
logger.warn ('JATS version injection checked OK')
|
|
|
42 |
}
|
|
|
43 |
|
|
|
44 |
allprojects {
|
| 5412 |
dpurdie |
45 |
|
| 4937 |
dpurdie |
46 |
afterEvaluate { project ->
|
|
|
47 |
//logger.info "-------- allprojects::afterEvaluate"
|
|
|
48 |
logger.info 'Project : ' + project.name
|
|
|
49 |
JatsGlobals.setProperty('Project_' + project.name, 1);
|
|
|
50 |
|
|
|
51 |
//---------------------------------------------------------------------
|
| 5412 |
dpurdie |
52 |
// Configure RoboElectric for offline operation
|
|
|
53 |
// Force here for all builds done under JATS
|
|
|
54 |
project.tasks.withType(Test) {
|
|
|
55 |
systemProperties.put('robolectric.offline', 'true')
|
|
|
56 |
}
|
|
|
57 |
|
|
|
58 |
//---------------------------------------------------------------------
|
| 4937 |
dpurdie |
59 |
// Remove network based repositories from the projects repositories
|
|
|
60 |
//
|
|
|
61 |
project.repositories
|
|
|
62 |
{
|
|
|
63 |
all
|
|
|
64 |
{
|
|
|
65 |
ArtifactRepository repo ->
|
| 5412 |
dpurdie |
66 |
def repoUrl = 'Repo has no URL'
|
|
|
67 |
def repoDir = ''
|
| 4937 |
dpurdie |
68 |
if (repo.hasProperty('url'))
|
|
|
69 |
{
|
|
|
70 |
repoUrl = repo.url.toString()
|
| 5412 |
dpurdie |
71 |
if (repoUrl.startsWith('file:/'))
|
|
|
72 |
{
|
|
|
73 |
repoDir = repoUrl
|
|
|
74 |
}
|
| 4937 |
dpurdie |
75 |
}
|
| 5412 |
dpurdie |
76 |
if (repo.name.startsWith('flatDir') && repo.hasProperty('dirs'))
|
|
|
77 |
{
|
|
|
78 |
repoDir = repo.dirs.toString()
|
|
|
79 |
repoUrl = repoDir
|
|
|
80 |
}
|
| 4937 |
dpurdie |
81 |
|
| 5412 |
dpurdie |
82 |
logger.info 'Repo:' + repo.name + "["+ repoUrl +"]"
|
|
|
83 |
|
| 4937 |
dpurdie |
84 |
// Allow
|
| 5412 |
dpurdie |
85 |
// flatDir* - these are used for JATS dependencies
|
| 4937 |
dpurdie |
86 |
// Repos that have a URL that starts with file:/ - these a local repos
|
| 5412 |
dpurdie |
87 |
if (repoDir.length() == 0)
|
| 4937 |
dpurdie |
88 |
{
|
| 5307 |
dpurdie |
89 |
logger.warn "WARNING: Repository: ${repo.name}. Url: ${repoUrl} removed. Only local repositories allowed"
|
| 4937 |
dpurdie |
90 |
remove repo
|
|
|
91 |
}
|
|
|
92 |
}
|
|
|
93 |
}
|
|
|
94 |
|
|
|
95 |
|
|
|
96 |
//---------------------------------------------------------------------
|
|
|
97 |
// Ensure that the JATS generated Version information is being used by
|
|
|
98 |
// the android projects to version the generated XML
|
|
|
99 |
//
|
|
|
100 |
logger.info "Global Version information"
|
|
|
101 |
logger.info " project.GBE_VERSION_NAME:" + project.GBE_VERSION_NAME
|
|
|
102 |
logger.info " project.GBE_VERSION_CODE:" + project.GBE_VERSION_CODE
|
|
|
103 |
|
|
|
104 |
if (project.hasProperty('android'))
|
|
|
105 |
{
|
|
|
106 |
logger.info "defaultConfig Properties"
|
|
|
107 |
logger.info "project.android.defaultConfig.versionName:" + project.android.defaultConfig.versionName
|
|
|
108 |
logger.info "project.android.defaultConfig.versionCode:" + project.android.defaultConfig.versionCode
|
|
|
109 |
|
|
|
110 |
if (project.GBE_VERSION_NAME != project.android.defaultConfig.versionName)
|
|
|
111 |
{
|
|
|
112 |
logger.error ("ERROR: Android defaultConfig. VersionName is not controlled by JATS")
|
|
|
113 |
logger.error (" Project Version Name:" + project.GBE_VERSION_NAME)
|
|
|
114 |
logger.error (" Default Version Name:" + project.android.defaultConfig.versionName)
|
|
|
115 |
throw new GradleException('JATS Version Check failed')
|
|
|
116 |
}
|
|
|
117 |
|
|
|
118 |
if (Integer.parseInt(project.GBE_VERSION_CODE) != project.android.defaultConfig.versionCode)
|
|
|
119 |
{
|
|
|
120 |
logger.error ("ERROR: Android defaultConfig. VersionCode is not controlled by JATS")
|
|
|
121 |
logger.error (" Project Version Code:" + project.GBE_VERSION_CODE)
|
|
|
122 |
logger.error (" Default Version Code:" + project.android.defaultConfig.versionCode)
|
|
|
123 |
throw new GradleException('JATS Version Check failed')
|
|
|
124 |
}
|
|
|
125 |
|
|
|
126 |
logger.warn (':' + project.name + ':JATS version injecting checked OK')
|
|
|
127 |
JatsGlobals.noAndroidProjectSeen += 1
|
|
|
128 |
}
|
|
|
129 |
|
|
|
130 |
//
|
|
|
131 |
// Insert a dummy task so that we can perform testing from within JATS
|
|
|
132 |
// Tasks have stuff to do
|
|
|
133 |
// doFirst adds stuff to the beginning of the action chain
|
|
|
134 |
// doLast adds stuff to the end of the action chain
|
|
|
135 |
task('JatsInfo')
|
|
|
136 |
{
|
|
|
137 |
description 'A task used by jats for sanity testing'
|
|
|
138 |
|
|
|
139 |
doFirst {
|
|
|
140 |
logger.info "Global Version information"
|
|
|
141 |
logger.info " project.GBE_VERSION_NAME:" + getProject().GBE_VERSION_NAME
|
|
|
142 |
logger.info " project.GBE_VERSION_CODE:" + getProject().GBE_VERSION_CODE
|
|
|
143 |
}
|
|
|
144 |
}
|
|
|
145 |
}
|
|
|
146 |
}
|
|
|
147 |
|
|
|
148 |
|