Skip to content

Commit 7948193

Browse files
authored
fix(allure-scalatest): cross-build for scala 2.12 and 2.13 (via #1107)
1 parent 558373c commit 7948193

File tree

3 files changed

+63
-71
lines changed

3 files changed

+63
-71
lines changed

allure-scalatest/build.gradle.kts

Lines changed: 51 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -2,84 +2,78 @@ import org.gradle.jvm.tasks.Jar
22

33
description = "Allure ScalaTest Integration"
44

5-
apply(plugin = "scala")
5+
plugins {
6+
scala
7+
id("com.github.prokod.gradle-crossbuild") version "0.16.0"
8+
}
69

7-
val availableScalaVersions = listOf("2.12", "2.13")
8-
val defaultScala212Version = "2.12.19"
9-
val defaultScala213Version = "2.13.14"
10+
val scala212 = "2.12"
11+
val scala213 = "2.13"
1012

11-
var selectedScalaVersion = defaultScala213Version
13+
project.base.archivesName.set("allure-scalatest")
1214

13-
if (hasProperty("scalaVersion")) {
14-
val scalaVersion: String by project
15-
selectedScalaVersion = when (scalaVersion) {
16-
"2.12" -> defaultScala212Version
17-
"2.13" -> defaultScala213Version
18-
else -> scalaVersion
15+
crossBuild {
16+
scalaVersionsCatalog = mapOf(
17+
scala212 to "2.12.19",
18+
scala213 to "2.13.14"
19+
)
20+
builds {
21+
register("scala") {
22+
scalaVersions = setOf(scala212, scala213)
23+
}
1924
}
2025
}
2126

22-
val baseScalaVersion = selectedScalaVersion.substring(0, selectedScalaVersion.lastIndexOf("."))
23-
project.base.archivesName.set("allure-scalatest_$baseScalaVersion")
24-
25-
for (sv in availableScalaVersions) {
26-
val taskSuffix = sv.replace('.', '_')
27+
val crossBuildScala_212Jar by tasks.getting
28+
val crossBuildScala_213Jar by tasks.getting
2729

28-
tasks.create("jarScala_$taskSuffix", GradleBuild::class) {
29-
startParameter = project.gradle.startParameter.newInstance()
30-
startParameter.projectProperties["scalaVersion"] = sv
31-
tasks = listOf("jar")
32-
}
30+
val scaladocJar by tasks.creating(Jar::class) {
31+
from(tasks.getByName("scaladoc"))
32+
archiveClassifier.set("scaladoc")
33+
}
3334

34-
tasks.create("testScala_$taskSuffix", GradleBuild::class) {
35-
startParameter = project.gradle.startParameter.newInstance()
36-
startParameter.projectProperties["scalaVersion"] = sv
37-
tasks = listOf("test")
35+
tasks.withType<PublishToMavenLocal>().configureEach {
36+
val predicate = provider {
37+
publication != publishing.publications["maven"]
3838
}
39-
40-
tasks.create("sourceJarScala_$taskSuffix", GradleBuild::class) {
41-
startParameter = project.gradle.startParameter.newInstance()
42-
startParameter.projectProperties["scalaVersion"] = sv
43-
tasks = listOf("sourceJar")
39+
onlyIf("disable default maven publication") {
40+
predicate.get()
4441
}
42+
}
4543

46-
tasks.create("scaladocJarScala_$taskSuffix", GradleBuild::class) {
47-
startParameter = project.gradle.startParameter.newInstance()
48-
startParameter.projectProperties["scalaVersion"] = sv
49-
tasks = listOf("scaladocJar")
44+
tasks.withType<PublishToMavenRepository>().configureEach {
45+
val predicate = provider {
46+
publication != publishing.publications["maven"]
5047
}
51-
52-
tasks.create("installScala_$taskSuffix", GradleBuild::class) {
53-
startParameter = project.gradle.startParameter.newInstance()
54-
startParameter.projectProperties["scalaVersion"] = sv
55-
tasks = listOf("install")
48+
onlyIf("disable default maven publication") {
49+
predicate.get()
5650
}
5751
}
5852

59-
val jarAll by tasks.creating {
60-
dependsOn(availableScalaVersions.map { "jarScala_${it.replace('.', '_')}" })
61-
}
62-
63-
val testAll by tasks.creating {
64-
dependsOn(availableScalaVersions.map { "testScala_${it.replace('.', '_')}" })
65-
}
66-
67-
val sourceJarAll by tasks.creating {
68-
dependsOn(availableScalaVersions.map { "sourceJarScala_${it.replace('.', '_')}" })
69-
}
70-
71-
val scaladocJarAll by tasks.creating {
72-
dependsOn(availableScalaVersions.map { "scaladocJarScala_${it.replace('.', '_')}" })
53+
publishing {
54+
publications {
55+
create<MavenPublication>("crossBuildScala_212") {
56+
from(components["crossBuildScala_212"])
57+
artifact(scaladocJar)
58+
artifact(tasks.sourcesJar)
59+
}
60+
create<MavenPublication>("crossBuildScala_213") {
61+
from(components["crossBuildScala_213"])
62+
artifact(scaladocJar)
63+
artifact(tasks.sourcesJar)
64+
}
65+
}
7366
}
7467

75-
val installAll by tasks.creating {
76-
dependsOn(availableScalaVersions.map { "installScala_${it.replace('.', '_')}" })
68+
signing {
69+
sign(publishing.publications["crossBuildScala_212"])
70+
sign(publishing.publications["crossBuildScala_213"])
7771
}
7872

7973
dependencies {
8074
api(project(":allure-java-commons"))
81-
implementation("org.scalatest:scalatest_$baseScalaVersion:3.2.19")
82-
implementation("org.scala-lang.modules:scala-collection-compat_$baseScalaVersion:2.12.0")
75+
implementation("org.scalatest:scalatest_$scala213:3.2.19")
76+
implementation("org.scala-lang.modules:scala-collection-compat_$scala213:2.12.0")
8377
testAnnotationProcessor(project(":allure-descriptions-javadoc"))
8478
testImplementation("io.github.glytching:junit-extensions")
8579
testImplementation("org.assertj:assertj-core")
@@ -92,13 +86,6 @@ dependencies {
9286
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
9387
}
9488

95-
val scaladocJar by tasks.creating(Jar::class) {
96-
from(tasks.getByName("scaladoc"))
97-
archiveClassifier.set("scaladoc")
98-
}
99-
100-
artifacts.add("archives", scaladocJar)
101-
10289
tasks.jar {
10390
manifest {
10491
attributes(mapOf(

build.gradle.kts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,7 @@ configure(subprojects) {
5656

5757
publishing {
5858
publications {
59-
create<MavenPublication>("maven") {
60-
suppressAllPomMetadataWarnings()
61-
versionMapping {
62-
allVariants {
63-
fromResolutionResult()
64-
}
65-
}
59+
withType<MavenPublication>().configureEach {
6660
pom {
6761
name.set(project.name)
6862
description.set("Module ${project.name} of Allure Framework.")
@@ -106,6 +100,14 @@ configure(subprojects) {
106100
}
107101
}
108102
}
103+
create<MavenPublication>("maven") {
104+
suppressAllPomMetadataWarnings()
105+
versionMapping {
106+
allVariants {
107+
fromResolutionResult()
108+
}
109+
}
110+
}
109111
}
110112
}
111113

gradle/quality-configs/spotbugs/exclude.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<Match>
77
<Source name="~.*\.groovy"/>
88
</Match>
9+
<Match>
10+
<Source name="~.*\.scala"/>
11+
</Match>
912

1013
<!-- Disable check -->
1114
<Match>

0 commit comments

Comments
 (0)