2020-09-02 06:12:10 +08:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
|
|
* this work for additional information regarding copyright ownership.
|
|
|
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
* (the "License"); you may not use this file except in compliance with
|
|
|
|
* the License. You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
def doValidation() {
|
2023-02-27 16:28:19 +08:00
|
|
|
// Run all the tasks associated with `check` except for `test` - the latter is executed via `doTest`
|
2021-04-05 23:42:04 +08:00
|
|
|
sh """
|
2023-02-27 16:28:19 +08:00
|
|
|
./retry_zinc ./gradlew -PscalaVersion=$SCALA_VERSION clean check -x test \
|
MINOR: Reuse gradle daemon for scala compilation by default (#12280)
The time time to compile was reduced from 5.3 seconds to 0.9 seconds by
changing the keep alive mode from `SESSION` to `DAEMON`. We change the
default to the latter and allow the former to be set via a `keepAliveMode`
property.
Also update the Jenkins build to use `keepAliveMode="session"` instead of
`--no-daemon`.
./gradlew compileTestScala -PkeepAliveMode="daemon" --info:
> Task :streams:streams-scala:compileTestScala
> Watching 928 directories to track changes
> Caching disabled for task ':streams:streams-scala:compileTestScala' because:
> Build cache is disabled
> Task ':streams:streams-scala:compileTestScala' is not up-to-date because:
> Input property 'source' file /home/ijuma/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/JoinedTest.scala has changed.
> Watching 920 directories to track changes
> Watching 919 directories to track changes
> Compiling with Zinc Scala compiler.
> Prepared Zinc Scala inputs: 0.004 secs
> compiling 16 Scala sources to /home/ijuma/src/kafka/streams/streams-scala/build/classes/scala/test ...
> done compiling
> Completed Scala compilation: 0.925 secs
./gradlew compileTestScala -PkeepAliveMode="session" --info
> Task :streams:streams-scala:compileTestScala
> Watching 928 directories to track changes
> Caching disabled for task ':streams:streams-scala:compileTestScala' because:
> Build cache is disabled
> Task ':streams:streams-scala:compileTestScala' is not up-to-date because:
> Input property 'source' file /home/ijuma/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/JoinedTest.scala has changed.
> Watching 920 directories to track changes
> Watching 919 directories to track changes
> Starting process 'Gradle Worker Daemon 3'. Working directory: /home/ijuma/.gradle/workers Command: /usr/java/jdk-17.0.4.1+1/bin/java -Xss4m -XX:+UseParallelGC --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED @/home/ijuma/.gradle/.tmp/gradle-worker-classpath3305983246500958050txt -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 3'
> Successfully started process 'Gradle Worker Daemon 3'
> Started Gradle worker daemon (0.244 secs) with fork options DaemonForkOptions{executable=/usr/java/jdk-17.0.4.1+1/bin/java, minHeapSize=null, maxHeapSize=2048m, jvmArgs=[-Xss4m, -XX:+UseParallelGC, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/java.nio.file=ALL-UNNAMED, --add-opens=java.base/java.util=ALL-UNNAMED, --add-opens=java.base/java.util.concurrent=ALL-UNNAMED, --add-opens=java.base/java.util.regex=ALL-UNNAMED, --add-opens=java.base/java.util.stream=ALL-UNNAMED, --add-opens=java.base/java.text=ALL-UNNAMED, --add-opens=java.base/java.time=ALL-UNNAMED, --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED], keepAliveMode=SESSION}.
> Compiling with Zinc Scala compiler.
> Prepared Zinc Scala inputs: 0.187 secs
> compiling 16 Scala sources to /home/ijuma/src/kafka/streams/streams-scala/build/classes/scala/test ...
> done compiling
> Completed Scala compilation: 5.307 secs
See https://github.com/gradle/gradle/issues/20579 for more details.
Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
2022-12-01 21:33:43 +08:00
|
|
|
--profile --continue -PxmlSpotBugsReport=true -PkeepAliveMode="session"
|
2021-04-05 23:42:04 +08:00
|
|
|
"""
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
|
2021-04-05 23:42:04 +08:00
|
|
|
def isChangeRequest(env) {
|
|
|
|
env.CHANGE_ID != null && !env.CHANGE_ID.isEmpty()
|
|
|
|
}
|
|
|
|
|
2023-08-13 04:52:49 +08:00
|
|
|
def doTest(env, target = "test") {
|
2021-04-05 23:42:04 +08:00
|
|
|
sh """./gradlew -PscalaVersion=$SCALA_VERSION ${target} \
|
MINOR: Reuse gradle daemon for scala compilation by default (#12280)
The time time to compile was reduced from 5.3 seconds to 0.9 seconds by
changing the keep alive mode from `SESSION` to `DAEMON`. We change the
default to the latter and allow the former to be set via a `keepAliveMode`
property.
Also update the Jenkins build to use `keepAliveMode="session"` instead of
`--no-daemon`.
./gradlew compileTestScala -PkeepAliveMode="daemon" --info:
> Task :streams:streams-scala:compileTestScala
> Watching 928 directories to track changes
> Caching disabled for task ':streams:streams-scala:compileTestScala' because:
> Build cache is disabled
> Task ':streams:streams-scala:compileTestScala' is not up-to-date because:
> Input property 'source' file /home/ijuma/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/JoinedTest.scala has changed.
> Watching 920 directories to track changes
> Watching 919 directories to track changes
> Compiling with Zinc Scala compiler.
> Prepared Zinc Scala inputs: 0.004 secs
> compiling 16 Scala sources to /home/ijuma/src/kafka/streams/streams-scala/build/classes/scala/test ...
> done compiling
> Completed Scala compilation: 0.925 secs
./gradlew compileTestScala -PkeepAliveMode="session" --info
> Task :streams:streams-scala:compileTestScala
> Watching 928 directories to track changes
> Caching disabled for task ':streams:streams-scala:compileTestScala' because:
> Build cache is disabled
> Task ':streams:streams-scala:compileTestScala' is not up-to-date because:
> Input property 'source' file /home/ijuma/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream/JoinedTest.scala has changed.
> Watching 920 directories to track changes
> Watching 919 directories to track changes
> Starting process 'Gradle Worker Daemon 3'. Working directory: /home/ijuma/.gradle/workers Command: /usr/java/jdk-17.0.4.1+1/bin/java -Xss4m -XX:+UseParallelGC --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED @/home/ijuma/.gradle/.tmp/gradle-worker-classpath3305983246500958050txt -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 3'
> Successfully started process 'Gradle Worker Daemon 3'
> Started Gradle worker daemon (0.244 secs) with fork options DaemonForkOptions{executable=/usr/java/jdk-17.0.4.1+1/bin/java, minHeapSize=null, maxHeapSize=2048m, jvmArgs=[-Xss4m, -XX:+UseParallelGC, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/java.nio.file=ALL-UNNAMED, --add-opens=java.base/java.util=ALL-UNNAMED, --add-opens=java.base/java.util.concurrent=ALL-UNNAMED, --add-opens=java.base/java.util.regex=ALL-UNNAMED, --add-opens=java.base/java.util.stream=ALL-UNNAMED, --add-opens=java.base/java.text=ALL-UNNAMED, --add-opens=java.base/java.time=ALL-UNNAMED, --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED], keepAliveMode=SESSION}.
> Compiling with Zinc Scala compiler.
> Prepared Zinc Scala inputs: 0.187 secs
> compiling 16 Scala sources to /home/ijuma/src/kafka/streams/streams-scala/build/classes/scala/test ...
> done compiling
> Completed Scala compilation: 5.307 secs
See https://github.com/gradle/gradle/issues/20579 for more details.
Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
2022-12-01 21:33:43 +08:00
|
|
|
--profile --continue -PkeepAliveMode="session" -PtestLoggingEvents=started,passed,skipped,failed \
|
2022-09-08 23:00:16 +08:00
|
|
|
-PignoreFailures=true -PmaxParallelForks=2 -PmaxTestRetries=1 -PmaxTestRetryFailures=10"""
|
2024-01-31 04:09:41 +08:00
|
|
|
junit '**/build/test-results/**/TEST-*.xml'
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
def doStreamsArchetype() {
|
|
|
|
echo 'Verify that Kafka Streams archetype compiles'
|
|
|
|
|
|
|
|
sh '''
|
2021-03-05 03:22:22 +08:00
|
|
|
./gradlew streams:publishToMavenLocal clients:publishToMavenLocal connect:json:publishToMavenLocal connect:api:publishToMavenLocal \
|
|
|
|
|| { echo 'Could not publish kafka-streams.jar (and dependencies) locally to Maven'; exit 1; }
|
2020-09-02 06:12:10 +08:00
|
|
|
'''
|
|
|
|
|
2020-09-15 08:23:58 +08:00
|
|
|
VERSION = sh(script: 'grep "^version=" gradle.properties | cut -d= -f 2', returnStdout: true).trim()
|
2020-09-02 06:12:10 +08:00
|
|
|
|
|
|
|
dir('streams/quickstart') {
|
|
|
|
sh '''
|
|
|
|
mvn clean install -Dgpg.skip \
|
|
|
|
|| { echo 'Could not `mvn install` streams quickstart archetype'; exit 1; }
|
|
|
|
'''
|
|
|
|
|
2020-09-15 08:23:58 +08:00
|
|
|
dir('test-streams-archetype') {
|
|
|
|
// Note the double quotes for variable interpolation
|
|
|
|
sh """
|
|
|
|
echo "Y" | mvn archetype:generate \
|
|
|
|
-DarchetypeCatalog=local \
|
|
|
|
-DarchetypeGroupId=org.apache.kafka \
|
|
|
|
-DarchetypeArtifactId=streams-quickstart-java \
|
|
|
|
-DarchetypeVersion=${VERSION} \
|
|
|
|
-DgroupId=streams.examples \
|
|
|
|
-DartifactId=streams.examples \
|
|
|
|
-Dversion=0.1 \
|
|
|
|
-Dpackage=myapps \
|
|
|
|
|| { echo 'Could not create new project using streams quickstart archetype'; exit 1; }
|
|
|
|
"""
|
2020-09-02 06:12:10 +08:00
|
|
|
|
2020-09-15 08:23:58 +08:00
|
|
|
dir('streams.examples') {
|
|
|
|
sh '''
|
|
|
|
mvn compile \
|
|
|
|
|| { echo 'Could not compile streams quickstart archetype project'; exit 1; }
|
|
|
|
'''
|
|
|
|
}
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
def tryStreamsArchetype() {
|
|
|
|
try {
|
|
|
|
doStreamsArchetype()
|
|
|
|
} catch(err) {
|
|
|
|
echo 'Failed to build Kafka Streams archetype, marking this build UNSTABLE'
|
|
|
|
currentBuild.result = 'UNSTABLE'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pipeline {
|
|
|
|
agent none
|
2021-04-05 23:42:04 +08:00
|
|
|
|
|
|
|
options {
|
2022-09-07 11:20:22 +08:00
|
|
|
disableConcurrentBuilds(abortPrevious: isChangeRequest(env))
|
2021-04-05 23:42:04 +08:00
|
|
|
}
|
|
|
|
|
2020-09-02 06:12:10 +08:00
|
|
|
stages {
|
|
|
|
stage('Build') {
|
|
|
|
parallel {
|
2021-04-05 23:42:04 +08:00
|
|
|
|
|
|
|
stage('JDK 8 and Scala 2.12') {
|
2020-09-02 06:12:10 +08:00
|
|
|
agent { label 'ubuntu' }
|
|
|
|
tools {
|
2020-10-20 00:54:47 +08:00
|
|
|
jdk 'jdk_1.8_latest'
|
|
|
|
maven 'maven_3_latest'
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
options {
|
|
|
|
timeout(time: 8, unit: 'HOURS')
|
|
|
|
timestamps()
|
|
|
|
}
|
|
|
|
environment {
|
|
|
|
SCALA_VERSION=2.12
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
doValidation()
|
2021-04-05 23:42:04 +08:00
|
|
|
doTest(env)
|
2020-09-02 06:12:10 +08:00
|
|
|
tryStreamsArchetype()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-04-05 23:42:04 +08:00
|
|
|
stage('JDK 11 and Scala 2.13') {
|
2020-09-02 06:12:10 +08:00
|
|
|
agent { label 'ubuntu' }
|
|
|
|
tools {
|
2020-10-20 00:54:47 +08:00
|
|
|
jdk 'jdk_11_latest'
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
options {
|
|
|
|
timeout(time: 8, unit: 'HOURS')
|
|
|
|
timestamps()
|
|
|
|
}
|
|
|
|
environment {
|
|
|
|
SCALA_VERSION=2.13
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
doValidation()
|
2021-04-05 23:42:04 +08:00
|
|
|
doTest(env)
|
2020-09-02 06:12:10 +08:00
|
|
|
echo 'Skipping Kafka Streams archetype test for Java 11'
|
|
|
|
}
|
|
|
|
}
|
2021-04-05 23:42:04 +08:00
|
|
|
|
2021-09-06 23:55:52 +08:00
|
|
|
stage('JDK 17 and Scala 2.13') {
|
2021-06-13 23:14:37 +08:00
|
|
|
agent { label 'ubuntu' }
|
|
|
|
tools {
|
2021-09-06 23:55:52 +08:00
|
|
|
jdk 'jdk_17_latest'
|
2021-06-13 23:14:37 +08:00
|
|
|
}
|
|
|
|
options {
|
|
|
|
timeout(time: 8, unit: 'HOURS')
|
|
|
|
timestamps()
|
|
|
|
}
|
|
|
|
environment {
|
|
|
|
SCALA_VERSION=2.13
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
doValidation()
|
|
|
|
doTest(env)
|
2021-09-06 23:55:52 +08:00
|
|
|
echo 'Skipping Kafka Streams archetype test for Java 17'
|
2021-06-13 23:14:37 +08:00
|
|
|
}
|
|
|
|
}
|
2021-04-05 23:42:04 +08:00
|
|
|
|
2023-09-25 20:17:08 +08:00
|
|
|
stage('JDK 21 and Scala 2.13') {
|
2021-04-05 23:42:04 +08:00
|
|
|
agent { label 'ubuntu' }
|
|
|
|
tools {
|
2023-09-25 20:17:08 +08:00
|
|
|
jdk 'jdk_21_latest'
|
2021-04-05 23:42:04 +08:00
|
|
|
}
|
|
|
|
options {
|
2023-06-30 16:12:00 +08:00
|
|
|
timeout(time: 8, unit: 'HOURS')
|
2021-04-05 23:42:04 +08:00
|
|
|
timestamps()
|
|
|
|
}
|
|
|
|
environment {
|
2023-06-30 16:12:00 +08:00
|
|
|
SCALA_VERSION=2.13
|
2021-04-05 23:42:04 +08:00
|
|
|
}
|
|
|
|
steps {
|
|
|
|
doValidation()
|
|
|
|
doTest(env)
|
2023-09-25 20:17:08 +08:00
|
|
|
echo 'Skipping Kafka Streams archetype test for Java 21'
|
2021-04-05 23:42:04 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
post {
|
|
|
|
always {
|
2022-12-05 23:42:07 +08:00
|
|
|
script {
|
|
|
|
if (!isChangeRequest(env)) {
|
|
|
|
node('ubuntu') {
|
2021-04-06 13:20:23 +08:00
|
|
|
step([$class: 'Mailer',
|
|
|
|
notifyEveryUnstableBuild: true,
|
|
|
|
recipients: "dev@kafka.apache.org",
|
|
|
|
sendToIndividuals: false])
|
|
|
|
}
|
2021-04-05 23:42:04 +08:00
|
|
|
}
|
2020-09-02 06:12:10 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|