| 
									
										
										
										
											2017-03-21 17:55:46 +08:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | # 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. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # This script is used for verifying changes in Jenkins. In order to provide faster feedback, the tasks are ordered so | 
					
						
							|  |  |  | # that faster tasks are executed in every module before slower tasks (if possible). For example, the unit tests for all | 
					
						
							|  |  |  | # the modules are executed before the integration tests. | 
					
						
							| 
									
										
										
										
											2019-02-03 04:22:57 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Run validation checks (compilation and static analysis) | 
					
						
							|  |  |  | ./gradlew clean compileJava compileScala compileTestJava compileTestScala \
 | 
					
						
							|  |  |  |     spotlessScalaCheck checkstyleMain checkstyleTest spotbugsMain rat \
 | 
					
						
							|  |  |  |     --profile --no-daemon --continue -PxmlSpotBugsReport=true "$@" \
 | 
					
						
							|  |  |  |     || { echo 'Validation steps failed'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Run tests | 
					
						
							|  |  |  | ./gradlew unitTest integrationTest \
 | 
					
						
							|  |  |  |     --profile --no-daemon --continue -PtestLoggingEvents=started,passed,skipped,failed "$@" \
 | 
					
						
							|  |  |  |     || { echo 'Test steps failed'; exit 1; } | 
					
						
							| 
									
										
										
										
											2019-03-22 03:51:18 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Verify that Kafka Streams archetype compiles | 
					
						
							|  |  |  | if [ $JAVA_HOME = "/home/jenkins/tools/java/latest11" ] ; then | 
					
						
							|  |  |  |   echo "Skipping Kafka Streams archetype test for Java 11" | 
					
						
							|  |  |  |   exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ./gradlew streams:install clients:install connect:json:install connect:api:install \
 | 
					
						
							|  |  |  |     || { echo 'Could not install kafka-streams.jar (and dependencies) locally`'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | version=`grep "^version=" gradle.properties | cut -d= -f 2` \
 | 
					
						
							|  |  |  |     || { echo 'Could not get version from `gradle.properties`'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd streams/quickstart \
 | 
					
						
							|  |  |  |     || { echo 'Could not change into directory `streams/quickstart`'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # variable $MAVEN_LATEST__HOME is provided by Jenkins (see build configuration) | 
					
						
							|  |  |  | mvn=$MAVEN_LATEST__HOME/bin/mvn | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $mvn clean install -Dgpg.skip  \
 | 
					
						
							|  |  |  |     || { echo 'Could not `mvn install` streams quickstart archetype'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | mkdir test-streams-archetype && cd test-streams-archetype \
 | 
					
						
							|  |  |  |     || { echo 'Could not create test directory for stream quickstart archetype'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd streams.examples \
 | 
					
						
							|  |  |  |     || { echo 'Could not change into directory `streams.examples`'; exit 1; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $mvn compile \
 | 
					
						
							|  |  |  |     || { echo 'Could not compile streams quickstart archetype project'; exit 1; } | 
					
						
							|  |  |  | 
 |