-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathbuild.gradle
More file actions
146 lines (126 loc) · 4.63 KB
/
build.gradle
File metadata and controls
146 lines (126 loc) · 4.63 KB
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
135
136
137
138
139
140
141
142
143
144
145
146
import io.gitlab.arturbosch.detekt.Detekt
import org.edx.builder.ConfigHelper
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.util.regex.Matcher
import java.util.regex.Pattern
buildscript {
ext {
// Plugin versions
android_gradle_plugin_version = '8.12.2'
google_services_version = '4.4.3'
firebase_crashlytics_version = '3.0.6'
ksp_version = '2.2.10-2.0.2'
//Depends on versions in OEXFoundation
kotlin_version = '2.2.10'
room_version = '2.7.2'
detekt_version = '1.23.8'
// Library versions
media3_version = "1.8.0"
youtubeplayer_version = "13.0.0"
firebase_version = "33.0.0"
jsoup_version = '1.21.2'
in_app_review = '2.0.2'
extented_spans_version = "1.4.0"
zip_version = '2.11.5'
// Third-party library versions
branch_sdk_version = '5.20.0'
play_services_ads_identifier_version = '18.2.0'
install_referrer_version = '2.2'
snakeyaml_version = '2.4'
openedx_foundation_version = '1.0.2'
openedx_firebase_analytics_version = '1.0.1'
braze_sdk_version = '37.0.0'
// AndroidX library versions
core_splashscreen_version = '1.0.1'
activity_compose_version = '1.10.1'
browser_version = '1.9.0'
credentials_version = '1.5.0'
// Social login versions
facebook_login_version = '18.1.3'
play_services_auth_version = '21.4.0'
googleid_version = '1.1.1'
msal_version = '7.0.0'
// OpenTelemetry versions
opentelemetry_version = '1.53.0'
// Testing versions
compose_ui_tooling = '1.7.8'
mockk_version = '1.14.5'
android_arch_version = '2.2.0'
junit_version = '4.13.2'
test_ext_version = '1.3.0'
espresso_version = '3.7.0'
kotlinx_coroutines_test_version = '1.10.2'
}
}
plugins {
//noinspection GradlePluginVersion
id 'com.android.application' version "$android_gradle_plugin_version" apply false
//noinspection GradlePluginVersion
id 'com.android.library' version "$android_gradle_plugin_version" apply false
id 'org.jetbrains.kotlin.android' version "$kotlin_version" apply false
id 'com.google.gms.google-services' version "$google_services_version" apply false
id "com.google.firebase.crashlytics" version "$firebase_crashlytics_version" apply false
id "com.google.devtools.ksp" version "$ksp_version" apply false
id "org.jetbrains.kotlin.plugin.compose" version "$kotlin_version" apply false
id 'io.gitlab.arturbosch.detekt' version "$detekt_version" apply false
}
tasks.register('clean', Delete) {
delete rootProject.layout.buildDirectory
}
ext {
// Android SDK versions
compile_sdk_version = 36
target_sdk_version = 36
min_sdk_version = 24
java_version = JavaVersion.VERSION_17
jvm_target_version = JvmTarget.JVM_17
configHelper = new ConfigHelper(projectDir, getCurrentFlavor())
}
def getCurrentFlavor() {
String tskReqStr = getGradle().getStartParameter().getTaskRequests().toString()
Pattern pattern
if (tskReqStr.contains("assemble")) // to run ./gradlew assembleRelease to build APK
pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
else if (tskReqStr.contains("bundle")) // to run ./gradlew bundleRelease to build .aab
pattern = Pattern.compile("bundle(\\w+)(Release|Debug)")
else
pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
Matcher matcher = pattern.matcher(tskReqStr)
if (matcher.find()) {
return matcher.group(1).toLowerCase()
} else {
return ""
}
}
tasks.register('generateMockedRawFile') {
doLast { configHelper.generateMicrosoftConfig() }
}
def projectSource = file(projectDir)
def configFile = files("$rootDir/config/detekt.yml")
def basePathFile = rootProject.projectDir.absolutePath
def kotlinFiles = "**/*.kt"
def resourceFiles = "**/resources/**"
def buildFiles = "**/build/**"
apply plugin: 'io.gitlab.arturbosch.detekt'
tasks.register("detektAll", Detekt) {
def autoFix = project.hasProperty('detektAutoFix')
description = "Custom DETEKT build for all modules"
parallel = true
ignoreFailures = false
autoCorrect = autoFix
buildUponDefaultConfig = true
setSource(projectSource)
config.setFrom(configFile)
include(kotlinFiles)
basePath(basePathFile)
exclude(resourceFiles, buildFiles)
reports {
html.enabled(true)
xml.enabled(true)
txt.enabled(false)
sarif.enabled(true)
}
}
dependencies {
detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$detekt_version"
}