Skip to content
Snippets Groups Projects
Forked from Arch Linux / infrastructure
2386 commits behind, 57 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.gradle.kts 2.86 KiB
plugins {
    java
    checkstyle

    id("org.unbroken-dome.test-sets") version "3.0.1"
    id("com.adarshr.test-logger") version "2.1.1"
    id("com.github.sherter.google-java-format") version "0.9"
    id("org.jlleitschuh.gradle.ktlint") version "10.0.0"
    id("se.patrikerdes.use-latest-versions") version "0.2.15"
    id("com.github.ben-manes.versions") version "0.38.0"
}

testSets {
    create("integrationTest")
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(11))
    }
}

googleJavaFormat {
    include("src/*.java")
}

group = "org.archlinux"
version = "1.0.0"

repositories {
    mavenCentral()

    maven {
        url = uri("https://dl.bintray.com/palantir/releases")
    }
}

val keycloakVer: String? by project

dependencies {
    val bouncyCastleVersion = "1.68"
    val restassuredVersion = "4.3.3"
    val keycloakVersion = if (keycloakVer != null) keycloakVer else "12.0.4"
    val javaxVersion = "2.0.1.Final"
    val junitVersion = "4.13.2"
    val hamcrestVersion = "2.2"
    val dockerComposeRuleVersion = "1.5.0"

    implementation("org.bouncycastle:bcprov-jdk15on:$bouncyCastleVersion")
    implementation("io.rest-assured:rest-assured:$restassuredVersion")

    compileOnly("org.keycloak:keycloak-core:$keycloakVersion")
    compileOnly("org.keycloak:keycloak-server-spi:$keycloakVersion")
    compileOnly("org.keycloak:keycloak-server-spi-private:$keycloakVersion")
    compileOnly("org.keycloak:keycloak-services:$keycloakVersion")
    compileOnly("org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:$javaxVersion")

    testImplementation("junit:junit:$junitVersion")
    testImplementation("org.hamcrest:hamcrest:$hamcrestVersion")
    testImplementation("com.palantir.docker.compose:docker-compose-rule-junit4:$dockerComposeRuleVersion")
}

tasks {
    jar {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
        from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) {
            exclude("META-INF/MANIFEST.MF")
            exclude("META-INF/*.SF")
            exclude("META-INF/*.DSA")
            exclude("META-INF/*.RSA")
        }
    }

    test {
        useJUnit()

        testLogging {
            showStandardStreams = true
        }
    }
}

tasks.named<Test>("integrationTest") {
    useJUnit()
}

tasks.register<Copy>("copyDevJar") {
    from(tasks.jar.get().outputs)
    into("./docker")
}

tasks.register<Copy>("copyTestJar") {
    from(tasks.jar.get().outputs)
    into("./src/integrationTest/resources/docker")
}

tasks.register("updateJar") {
    dependsOn("copyDevJar")
    dependsOn("copyTestJar")
}

tasks.register("format") {
    dependsOn("ktlintFormat")
    dependsOn("googleJavaFormat")
}

tasks.register("checkFormat") {
    dependsOn("ktlintCheck")
    dependsOn("verifyGoogleJavaFormat")
}

tasks.register("checkStyle") {
    dependsOn("checkstyleMain")
    dependsOn("checkstyleTest")
}