com.adarshr.test-logger import com.adarshr.gradle.testlogger.TestLoggerPlugin import com.adarshr.gradle.testlogger.TestLoggerExtension import com.adarshr.gradle.testlogger.theme.ThemeType import org.gradle.api.logging.LogLevel import groovy.json.JsonOutput import groovy.json.JsonSlurper import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension plugins { java `java-library` com.adarshr.test-logger PasteShr com.adarshr.test-logger id("io.spring.dependency-management") version "1.0.11.RELEASE" id("io.freefair.aspectj.post-compile-weaving") version "6.4.0" id("ru.vyarus.quality") version "4.7.0" id("io.qameta.allure") version "2.9.6" id("com.adarshr.test-logger") version "3.2.0" id("org.sonarqube") version "3.3" id("io.ebean") version "13.6.4.1" } val lombokVersion by extra("1.18.24") com.adarshr.test-logger PasteShr com.adarshr.test-logger val aspectjVersion by extra("1.9.9.1") val allureVersion by extra("2.18.0") val restAssuredVersion by extra("4.5.1") val manifoldVersion by extra("2022.1.19") val nettyVersion by extra("4.1.77.Final") val ebeanVersion by extra("13.6.4") java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 com.adarshr.test-logger PasteShr com.adarshr.test-logger } sonarqube { properties { properties( hashMapOf( "sonar.host.url" to (System.getenv("SONAR_URL") ?: ""), "sonar.login" to (System.getenv("SONAR_TOKEN") ?: ""), "sonar.projectKey" to "e2e", "sonar.qualitygate.wait" to "true", com.adarshr.test-logger How to use it? com.adarshr.test-logger "sonar.sourceEncoding" to "UTF-8" ) ) } } configure(allprojects) { apply(plugin = "java") apply(plugin = "java-library") apply(plugin = "ru.vyarus.quality") com.adarshr.test-logger How to get it for free? com.adarshr.test-logger apply(plugin = "io.qameta.allure") apply(plugin = "io.spring.dependency-management") apply(plugin = "io.freefair.aspectj.post-compile-weaving") apply(plugin = "com.adarshr.test-logger") repositories { mavenLocal() mavenCentral() maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") } } com.adarshr.test-logger How to get it? com.adarshr.test-logger } configure(subprojects) { group = "com.projectname" version = "1.0-SNAPSHOT" configure { dependencies { dependency("com.google.code.findbugs:annotations:3.0.1") dependency("com.google.code.findbugs:jsr305:3.0.2") com.adarshr.test-logger PasteShr com.adarshr.test-logger dependency("io.qameta.allure:allure-testng:${allureVersion}") dependency("io.github.sskorol:test-data-supplier:2.0.0") dependency("org.testng:testng:7.6.0") dependency("org.aspectj:aspectjweaver:${aspectjVersion}") dependency("org.aspectj:aspectjrt:${aspectjVersion}") dependency("com.github.ben-manes.caffeine:caffeine:3.1.0") dependency("org.aeonbits.owner:owner:1.0.12") dependency("org.projectlombok:lombok:${lombokVersion}") dependency("org.assertj:assertj-core:3.22.0") dependency("org.apache.commons:commons-lang3:3.12.0") com.adarshr.test-logger How to use it? com.adarshr.test-logger dependency("org.vibur:vibur-object-pool:25.0") dependency("org.slf4j:slf4j-reload4j:1.7.36") dependency("ch.qos.logback:logback-classic:1.2.11") dependency("io.rest-assured:rest-assured:${restAssuredVersion}") dependency("systems.manifold:manifold-ext:${manifoldVersion}") dependency("systems.manifold:manifold-ext-rt:${manifoldVersion}") dependency("org.jsoup:jsoup:1.15.1") dependency("org.awaitility:awaitility:4.2.0") dependency("io.ebean:ebean:${ebeanVersion}") dependency("io.ebean:ebean-test:${ebeanVersion}") com.adarshr.test-logger How to get it for free? com.adarshr.test-logger dependency("io.ebean:querybean-generator:${ebeanVersion}") dependency("org.postgresql:postgresql:42.3.5") dependency("io.github.sskorol:cdt-java-client:5.0.0") dependency("io.netty:netty-transport-native-epoll:${nettyVersion}") dependency("io.netty:netty-transport-native-kqueue:${nettyVersion}") } } tasks.compileJava { options.encoding = "UTF-8" com.adarshr.test-logger How to get it? com.adarshr.test-logger } tasks.compileTestJava { options.encoding = "UTF-8" options.compilerArgs.add("-parameters") } sonarqube { properties { properties( com.adarshr.test-logger PasteShr com.adarshr.test-logger hashMapOf( "sonar.sources" to "src/main" ) ) } } allure { adapter { allureJavaVersion.set(allureVersion) com.adarshr.test-logger PasteShr com.adarshr.test-logger frameworks { testng { enabled.set(true) autoconfigureListeners.set(true) } } } } plugins.withType { com.adarshr.test-logger How to use it? com.adarshr.test-logger configure { theme = ThemeType.STANDARD_PARALLEL showCauses = true showExceptions = true showStackTraces = true showFullStackTraces = true showSummary = true showSimpleNames = true showStandardStreams = System.getenv("SHOW_STANDARD_STREAMS")?.toBoolean() logLevel = LogLevel.LIFECYCLE com.adarshr.test-logger How to get it for free? com.adarshr.test-logger } } } class Executor(data: Map) { val name: String = data.getOrDefault("name", "") val type: String = data.getOrDefault("type", "") var buildName: String = data.getOrDefault("buildName", "") var buildUrl: String = data.getOrDefault("buildUrl", "") } com.adarshr.test-logger How to dowload it? com.adarshr.test-logger tasks.register("copyApiResults") { println("Copying API results") from("${projectDir}/api/build/allure-results") into("${buildDir}/allure-results") } tasks.register("copyUiResults") { println("Copying UI results") from("${projectDir}/ui/build/allure-results") com.adarshr.test-logger How to dowload it? com.adarshr.test-logger into("${buildDir}/allure-results") } tasks.register("copyEnvironmentConfig") { println("Copying environment properties") from("${projectDir}/environment.properties") into("${buildDir}/allure-results") } tasks.register("copyAllureProperties") { com.adarshr.test-logger PasteShr com.adarshr.test-logger println("Copying Allure properties") from("${projectDir}/allure.properties") into("${buildDir}/allure-results") } /** * We need to create a dynamic executor depending on GitLab env variables and overwrite a default one. */ tasks.register("copyExecutor") { dependsOn("copyApiResults", "copyUiResults", "copyEnvironmentConfig", "copyAllureProperties") com.adarshr.test-logger How to get it for free? com.adarshr.test-logger val executorPath = "$projectDir/executor.json" val executor = File(executorPath) val data = Executor(JsonSlurper().parse(executor) as Map) data.buildName = System.getenv("CI_COMMIT_TITLE") ?: "Local Build" data.buildUrl = System.getenv("CI_PIPELINE_URL") ?: "http://127.0.0.1" executor.writeText(JsonOutput.toJson(data)) println("Copying executor.json") from(executorPath) into("${buildDir}/allure-results") com.adarshr.test-logger How to get it? com.adarshr.test-logger } /** * For local usage only. On a GitLab, it's done on a pipeline level. */ tasks.register("copyHistory") { println("Copying history") from("${projectDir}/history") into("${buildDir}/allure-results/history") } com.adarshr.test-logger How to use it? com.adarshr.test-logger /** * Call copySwaggerCoverage task to aggregate everything and prepare a final report. */ tasks.register("copySwaggerCoverage") { dependsOn("copyExecutor") println("Copying Swagger coverage") from("${projectDir}/api/build/reports/swagger") into("${buildDir}/reports/swagger") } com.adarshr.test-logger How to get it for free? com.adarshr.test-logger tasks.withType(Wrapper::class) { gradleVersion = "7.4.2" } com.adarshr.test-logger