-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
134 lines (125 loc) · 4.34 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: 'dependencies.gradle'
buildscript {
ext.kotlin_version = '1.4.20'
ext {
dokkaVersion = '0.9.17'
navigationVersion = '2.2.2'
}
repositories {
google()
jcenter()
maven { url 'maven' }
maven { url 'https://maven.google.com' }
maven { url "https://dl.bintray.com/osborn/Android" }
}
dependencies {
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.android.tools.build:gradle:4.1.2'
classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$dokkaVersion"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigationVersion"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
mavenCentral()
maven { url "http://dl.bintray.com/jetbrains/spek" }
maven { url 'https://maven.google.com' }
maven { url 'https://jitpack.io' }
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// This method will check the tasks that will be run and depending on that it select which flavor is selected
// And it will return the corresponding Version properties file (Staging|Release)
def getVersionFileNameDependsOnBuildType() {
def taskNames = gradle.startParameter.taskNames
for (String taskName : taskNames) {
if (taskName.contains("Debug")) {
return debugVersionFileName
} else if (taskName.contains("Release")) {
return releaseVersionFileName
} else {
return stagingVersionFileName
}
}
}
def readVersionName(def versionFileName, def taskName, def envName) {
def version = readVersion(versionFileName)
if (taskName == "release") {
return "${version[MAJOR]}.${version[MINOR]}.${version[PATCH]}"
} else {
return "${envName}-[${version[MAJOR]}.${version[MINOR]}.${version[PATCH]}]"
}
}
def readVersionNameOnly(def versionFileName) {
def version = readVersion(versionFileName)
return "${version[MAJOR]}.${version[MINOR]}.${version[PATCH]}"
}
def readBuildCode(def versionFileName) {
def version = readVersion(versionFileName)
def build = version[BUILD] as int
return build
}
def readVersion(def versionFileName) {
def versionFile = rootProject.file(versionFileName + ".properties")
def version = new Properties()
def stream
try {
stream = new FileInputStream(versionFile)
version.load(stream)
} catch (FileNotFoundException e) {
} finally {
if (stream != null) stream.close()
}
//by default if we're not able to read the file
if (!version[MAJOR]) version[MAJOR] = "1"
if (!version[MINOR]) version[MINOR] = "0"
if (!version[PATCH]) version[PATCH] = "0"
if (!version[BUILD]) version[BUILD] = "1"
return version
}
def updateVersionNumber(def major, def minor, def patch, def build, def versionFileName) {
def versionFile = rootProject.file(versionFileName + ".properties")
def version = readVersion(versionFileName)
println "updateVersionNumber :" + version
version[MAJOR] = major.toString()
version[MINOR] = minor.toString()
version[PATCH] = patch.toString()
version[BUILD] = build.toString()
def stream = new FileOutputStream(versionFile)
try {
version.store(stream, null)
} finally {
stream.close()
}
}
def getCurrentTaskName() {
def taskNames = gradle.startParameter.taskNames
for (String taskName : taskNames) {
if (taskName.contains("Debug")) {
return "debug"
} else if (taskName.contains("Release")) {
return "release"
} else {
return "flavor"
}
}
}
def getEnvironmentName() {
def taskNames = gradle.startParameter.taskNames
for (String taskName : taskNames) {
if (taskName.contains("Debug")) {
return rootProject.ext.appProperties['DEBUG_WORKING_ENV'].toLowerCase().replaceAll('"', '')
} else if (taskName.contains("Release")) {
return rootProject.ext.appProperties['WORKING_ENV'].toLowerCase().replaceAll('"', '')
} else {
return 'env'
}
}
}