android/build.gradle.kts (41 lines of code) (raw):
import org.jmailen.gradle.kotlinter.tasks.FormatTask
buildscript {
dependencies {
classpath(libs.other.composeLint)
// This is temporarily required till detekt catches up with the latest Kotlin version
classpath(libs.kotlin.compiler.embeddable)
}
}
plugins {
alias(libs.plugins.agp.application) apply false
alias(libs.plugins.kgp) apply false
alias(libs.plugins.agp.library) apply false
alias(libs.plugins.kotlinter) apply false
alias(libs.plugins.detekt) apply false
alias(libs.plugins.paparazzi) apply false
alias(libs.plugins.nexus.publish)
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.dokka) apply false
alias(libs.plugins.gradle.binaryCompatibility)
alias(libs.plugins.metalava) apply false
alias(libs.plugins.licensee) apply false
}
group = libs.versions.group.get()
version = libs.versions.libraryVersion.get()
nexusPublishing {
repositories {
sonatype {
// Sonatype token provides username and passwords as revokable secrets combined with a
// colon. We split them and provide it to the nexus plugin. See here for more:
// https://github.com/guardian/gha-scala-library-release-workflow/commit/23a148a03cf71bb2093a91f047d3c368adcdf45c
val token = System.getenv("AUTOMATED_MAVEN_RELEASE_SONATYPE_TOKEN") ?: ":"
val (uname, pwd) = token.split(":")
username = uname
password = pwd
}
}
}
allprojects {
// Exclude generated files from linter
tasks.withType<org.jmailen.gradle.kotlinter.tasks.LintTask>().configureEach {
source = this.source.minus(fileTree("src/build/generated")).asFileTree
}
tasks.withType<FormatTask>().configureEach {
source = this.source.minus(fileTree("src/build/generated")).asFileTree
}
}