diff --git a/.github/workflows/build-rd-kt-container.yml b/.github/workflows/build-rd-kt-container.yml index 358a47eb7..a16093f9c 100644 --- a/.github/workflows/build-rd-kt-container.yml +++ b/.github/workflows/build-rd-kt-container.yml @@ -12,7 +12,6 @@ jobs: container: adoptopenjdk/openjdk11:x86_64-ubuntu-jdk-11.0.11_9 env: GRADLE_USER_HOME: ${{ github.workspace }}/.github/gradle - TEAMCITY_VERSION: 1 # temporary; to disable cross tests timeout-minutes: 25 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/build-rd-kt.yml b/.github/workflows/build-rd-kt.yml index 7120a2473..12a9a7651 100644 --- a/.github/workflows/build-rd-kt.yml +++ b/.github/workflows/build-rd-kt.yml @@ -14,7 +14,6 @@ jobs: os: [macos-10.15, windows-2019] env: GRADLE_USER_HOME: ${{ github.workspace }}/.github/gradle - TEAMCITY_VERSION: 1 # temporary; to disable cross tests timeout-minutes: 25 steps: - uses: actions/checkout@v2 diff --git a/.run/rd-cross debug.run.xml b/.run/rd-cross debug.run.xml new file mode 100644 index 000000000..b26f2d96a --- /dev/null +++ b/.run/rd-cross debug.run.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 67409e5a2..90c0de106 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,5 @@ FROM adoptopenjdk/openjdk11:x86_64-ubuntu-jdk-11.0.11_9 WORKDIR /rd COPY . . -ENV TEAMCITY_VERSION=1 RUN ./gradlew assemble ENTRYPOINT ./gradlew build diff --git a/README.md b/README.md index 786076b79..393120cc1 100644 --- a/README.md +++ b/README.md @@ -113,8 +113,6 @@ To build packages locally please use: `rd-kt/rd-gen/pack.sh` ### On a local computer -Don't forget to set `TEAMCITY_VERSION=1` (temporary measure for now) before running any tests. - ```console $ ./gradlew build ``` diff --git a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/dependencies/Dependencies.kt b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/dependencies/Dependencies.kt index 8b66a1594..eb0af1a27 100644 --- a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/dependencies/Dependencies.kt +++ b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/dependencies/Dependencies.kt @@ -7,4 +7,4 @@ const val junitVersion = "5.6.0" const val sl4jVersion = "1.7.12" const val nodeVersion = "1.3.1" -const val netCoreAppVersion = "2.1" +const val netCoreAppVersion = "3.1" diff --git a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/plugins/CrossTestPlugin.kt b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/plugins/CrossTestPlugin.kt index fbff1216d..e8e8aa151 100644 --- a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/plugins/CrossTestPlugin.kt +++ b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/plugins/CrossTestPlugin.kt @@ -2,11 +2,14 @@ package com.jetbrains.rd.gradle.plugins -import com.jetbrains.rd.gradle.tasks.* +import com.jetbrains.rd.gradle.tasks.CrossTestCsTask +import com.jetbrains.rd.gradle.tasks.CrossTestTaskKt +import com.jetbrains.rd.gradle.tasks.InteropTask import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.tasks.testing.Test import org.gradle.kotlin.dsl.* +import java.io.File fun Project.applyCrossTest() = apply() @@ -48,6 +51,10 @@ class CrossTestPlugin : Plugin { classpath += sourceSets["main"].output classpath += configurations["compileClasspath"] classpath += configurations["runtimeClasspath"] + classpath = classpath.minus(files(gradle.gradleHomeDir?.resolve("lib")?.listFiles()?.filter { it.name.contains("kotlin-stdlib") || it.name.contains("kotlin-reflect") } ?: listOf())) + + val extraArguments = project.extra["crossTestsJavaAdditionalArgs"]?.toString().orEmpty().split(' ') + jvmArgs(extraArguments) } fun creatingCrossTestRdTask() = diff --git a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/tasks/CrossTestTaskKt.kt b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/tasks/CrossTestTaskKt.kt index 45196bb0c..db8a6175c 100644 --- a/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/tasks/CrossTestTaskKt.kt +++ b/buildSrc/src/main/kotlin/com/jetbrains/rd/gradle/tasks/CrossTestTaskKt.kt @@ -1,15 +1,18 @@ package com.jetbrains.rd.gradle.tasks -import java.io.IOException -import java.io.ObjectInputStream -import java.io.ObjectOutputStream - /** * Provides command line arguments for running Kotlin crosstest part */ open class CrossTestTaskKt : KotlinExec(), MarkedExecTask { override val commandLineWithArgs: List - get() = (super.getCommandLine() + tmpFile.absolutePath) + get() { + val action = execActionFactory.newJavaExecAction() + copyTo(action) + action.main = main + action.classpath = classpath + + return action.commandLine + tmpFile.absolutePath + } init { main = "com.jetbrains.rd.cross.cases.${name}Kt" diff --git a/gradle.properties b/gradle.properties index 46507f158..0f061a49e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,6 @@ version=2021.3.4 deployMavenToProduction=false deployNuGetToNuGetOrg=false -deployNuGetToInternal=false \ No newline at end of file +deployNuGetToInternal=false +enableCrossTests=true +crossTestsJavaAdditionalArgs=-agentlib:jdwp=transport=dt_socket,server=n,address=HORIZON:5005,suspend=y diff --git a/settings.gradle.kts b/settings.gradle.kts index 103dae669..35722ad59 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,9 +19,9 @@ project(":rd-text").projectDir = File("rd-kt/rd-text") include(":rd-swing") project(":rd-swing").projectDir = File("rd-kt/rd-swing") -val TEAMCITY_VERSION = "TEAMCITY_VERSION" +val enableCrossTests = extra["enableCrossTests"]?.toString().orEmpty().let { it == "1" || it.equals("true", true) } -if (System.getenv(TEAMCITY_VERSION) == null) { +if (enableCrossTests) { include(":rd-net") project(":rd-net").projectDir = File("rd-net")