Files
YAEP/build.gradle.kts
Christian Basler 3d6a07e81c
Some checks failed
Flatpak / Flatpak (push) Failing after 8m4s
Add versioning (WIP)
* Gradle Git Versioning Plugin
* Changelog
* Flatpack build workflow
2025-11-03 19:22:48 +01:00

92 lines
2.5 KiB
Kotlin

import com.android.build.gradle.internal.lint.AndroidLintTask
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
import org.sonarqube.gradle.SonarTask
plugins {
alias(libs.plugins.versions)
alias(libs.plugins.sonarqube)
alias(libs.plugins.kotlin.kover)
alias(libs.plugins.versioning)
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.compose) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.android) apply false
}
version = "0.0.0-SNAPSHOT"
gitVersioning.apply {
refs {
branch(".+") {
considerTagsOnBranches = true
version = "\${ref}-SNAPSHOT"
}
tag("(?<version>.*)") {
version = "\${ref.version}"
}
}
// optional fallback configuration in case of no matching ref configuration
rev {
version = "\${commit}"
}
}
sonar {
properties {
property("sonar.projectKey", "YAEP")
property("sonar.projectName", "YAEP")
property(
"sonar.coverage.jacoco.xmlReportPaths",
"${layout.buildDirectory.asFile.get()}/reports/kover/report.xml"
)
}
}
tasks.withType<SonarTask>().configureEach {
dependsOn(
subprojects
.flatMap { it.tasks.withType<AndroidLintTask>() }
.filter { it.variantName != "release" }
)
dependsOn("koverXmlReport")
}
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
jvmTarget.set(JvmTarget.fromTarget(libs.versions.jdk.get()))
}
}
tasks.withType<DependencyUpdatesTask> {
rejectVersionIf {
isNonStable(candidate.version) && !isNonStable(currentVersion)
}
}
fun isNonStable(version: String): Boolean {
return version.contains("dev", ignoreCase = true)
|| version.contains("alpha", ignoreCase = true)
|| version.contains("beta", ignoreCase = true)
|| version.contains("RC", ignoreCase = true)
}
subprojects {
tasks.withType<Test> {
testLogging {
events("passed", "skipped", "failed")
}
}
}
dependencies {
kover(projects.domain)
kover(projects.commonUI)
kover(projects.desktop)
kover(projects.android)
}