From c3fc6a4e88aeaa30b74e47d48bb7bd58dd687a85 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Wed, 28 Oct 2020 00:42:51 +0100 Subject: [PATCH] Clean gradle scripts --- buildSrc/build.gradle.kts | 8 ++- .../be/simplenotes/app-docker.gradle.kts | 28 ++-------- .../kotlin/be/simplenotes/base.gradle.kts | 56 ++----------------- .../be/simplenotes/java-convention.gradle.kts | 26 +++++++++ .../simplenotes/junit-convention.gradle.kts | 14 +++++ .../simplenotes/kotlin-convention.gradle.kts | 25 +++++++++ .../kotlinx-serialization.gradle.kts | 1 - 7 files changed, 80 insertions(+), 78 deletions(-) create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts create mode 100644 buildSrc/src/main/kotlin/be/simplenotes/kotlin-convention.gradle.kts diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a289380..3476600 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,8 +1,9 @@ plugins { `kotlin-dsl` - kotlin("jvm") version "1.4.10" - id("com.github.johnrengelman.shadow") version "6.1.0" apply false - kotlin("plugin.serialization") version "1.4.10" +} + +kotlinDslPluginOptions { + experimentalWarning.set(false) } repositories { @@ -15,4 +16,5 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-serialization:1.4.10") implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") implementation("org.jlleitschuh.gradle:ktlint-gradle:9.4.1") + implementation("com.github.ben-manes:gradle-versions-plugin:0.28.0") } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts index 0a7e953..410f2e5 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/app-docker.gradle.kts @@ -1,29 +1,12 @@ package be.simplenotes -import java.util.concurrent.TimeUnit.MINUTES -import kotlin.concurrent.thread - -fun runCommand(vararg args: String, onError: () -> Unit) { - logging.captureStandardOutput(LogLevel.INFO) - ProcessBuilder(*args) - .redirectOutput(ProcessBuilder.Redirect.PIPE) - .redirectError(ProcessBuilder.Redirect.PIPE) - .directory(rootProject.projectDir) - .start() - .apply { - thread { inputStream.use { it.copyTo(System.out) } } - thread { errorStream.use { it.copyTo(System.out) } } - waitFor(2, MINUTES) - if (exitValue() != 0) onError() - } -} - tasks.create("dockerBuild") { dependsOn("package") doLast { - runCommand("docker", "build", "-t", "hubv/simplenotes:latest", ".") { - throw GradleException("Docker build failed") + exec { + commandLine("docker", "build", "-t", "hubv/simplenotes:latest", ".") + workingDir(rootProject.projectDir) } } } @@ -32,8 +15,9 @@ tasks.create("dockerPush") { dependsOn("dockerBuild") doLast { - runCommand("docker", "push", "hubv/simplenotes:latest") { - throw GradleException("Docker Push failed") + exec { + commandLine("docker", "push", "hubv/simplenotes:latest") + workingDir(rootProject.projectDir) } } } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts index ff0befb..a26e672 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/base.gradle.kts @@ -1,57 +1,9 @@ package be.simplenotes -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { - java - kotlin("jvm") - `java-library` + id("be.simplenotes.java-convention") + id("be.simplenotes.kotlin-convention") + id("be.simplenotes.junit-convention") id("org.jlleitschuh.gradle.ktlint") -} - -repositories { - mavenLocal() - mavenCentral() - jcenter() - maven { url = uri("https://dl.bintray.com/arrow-kt/arrow-kt/") } - maven { url = uri("https://kotlin.bintray.com/kotlinx") } -} - -group = "be.simplenotes" -version = "1.0-SNAPSHOT" - -dependencies { - implementation(kotlin("stdlib-jdk8")) - implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.4.10")) -} - -tasks.withType { - useJUnitPlatform() -} - -java { - sourceCompatibility = JavaVersion.VERSION_14 - targetCompatibility = JavaVersion.VERSION_14 -} - -sourceSets { - val test by getting - test.resources.srcDir("${rootProject.projectDir}/simplenotes-test-resources/src/test/resources") -} - -tasks.withType { - kotlinOptions { - jvmTarget = "14" - javaParameters = true - freeCompilerArgs = listOf( - "-Xinline-classes", - "-Xno-param-assertions", - "-Xno-call-assertions", - "-Xno-receiver-assertions" - ) - } -} - -tasks.withType { - options.encoding = "UTF-8" + id("com.github.ben-manes.versions") } diff --git a/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts new file mode 100644 index 0000000..5d4f491 --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/java-convention.gradle.kts @@ -0,0 +1,26 @@ +package be.simplenotes + +plugins { + java + `java-library` +} + +repositories { + mavenLocal() + mavenCentral() + jcenter() + maven { url = uri("https://dl.bintray.com/arrow-kt/arrow-kt/") } + maven { url = uri("https://kotlin.bintray.com/kotlinx") } +} + +group = "be.simplenotes" +version = "1.0-SNAPSHOT" + +java { + sourceCompatibility = JavaVersion.VERSION_14 + targetCompatibility = JavaVersion.VERSION_14 +} + +tasks.withType { + options.encoding = "UTF-8" +} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts new file mode 100644 index 0000000..b8bd482 --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/junit-convention.gradle.kts @@ -0,0 +1,14 @@ +package be.simplenotes + +plugins { + java apply false +} + +tasks.withType { + useJUnitPlatform() +} + +sourceSets { + val test by getting + test.resources.srcDir("${rootProject.projectDir}/simplenotes-test-resources/src/test/resources") +} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/kotlin-convention.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/kotlin-convention.gradle.kts new file mode 100644 index 0000000..410cd9e --- /dev/null +++ b/buildSrc/src/main/kotlin/be/simplenotes/kotlin-convention.gradle.kts @@ -0,0 +1,25 @@ +package be.simplenotes + +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") +} + +dependencies { + implementation(kotlin("stdlib-jdk8")) + implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.4.10")) +} + +tasks.withType { + kotlinOptions { + jvmTarget = "14" + javaParameters = true + freeCompilerArgs = listOf( + "-Xinline-classes", + "-Xno-param-assertions", + "-Xno-call-assertions", + "-Xno-receiver-assertions" + ) + } +} diff --git a/buildSrc/src/main/kotlin/be/simplenotes/kotlinx-serialization.gradle.kts b/buildSrc/src/main/kotlin/be/simplenotes/kotlinx-serialization.gradle.kts index 2ad6c12..d5bc119 100644 --- a/buildSrc/src/main/kotlin/be/simplenotes/kotlinx-serialization.gradle.kts +++ b/buildSrc/src/main/kotlin/be/simplenotes/kotlinx-serialization.gradle.kts @@ -1,6 +1,5 @@ package be.simplenotes plugins { - kotlin("jvm") apply false kotlin("plugin.serialization") }