|
17 | 17 | # limitations under the License.
|
18 | 18 | #
|
19 | 19 |
|
20 |
| -# Go to the Spark project root directory |
21 | 20 | FWDIR="$(cd "`dirname $0`"/..; pwd)"
|
22 | 21 | cd "$FWDIR"
|
23 | 22 |
|
24 |
| -# Clean up work directory and caches |
25 |
| -rm -rf ./work |
26 |
| -rm -rf ~/.ivy2/local/org.apache.spark |
27 |
| -rm -rf ~/.ivy2/cache/org.apache.spark |
28 |
| - |
29 |
| -source "$FWDIR/dev/run-tests-codes.sh" |
30 |
| - |
31 |
| -CURRENT_BLOCK=$BLOCK_GENERAL |
32 |
| - |
33 |
| -function handle_error () { |
34 |
| - echo "[error] Got a return code of $? on line $1 of the run-tests script." |
35 |
| - exit $CURRENT_BLOCK |
36 |
| -} |
37 |
| - |
38 |
| - |
39 |
| -# Build against the right version of Hadoop. |
40 |
| -{ |
41 |
| - if [ -n "$AMPLAB_JENKINS_BUILD_PROFILE" ]; then |
42 |
| - if [ "$AMPLAB_JENKINS_BUILD_PROFILE" = "hadoop1.0" ]; then |
43 |
| - export SBT_MAVEN_PROFILES_ARGS="-Phadoop-1 -Dhadoop.version=1.2.1" |
44 |
| - elif [ "$AMPLAB_JENKINS_BUILD_PROFILE" = "hadoop2.0" ]; then |
45 |
| - export SBT_MAVEN_PROFILES_ARGS="-Phadoop-1 -Dhadoop.version=2.0.0-mr1-cdh4.1.1" |
46 |
| - elif [ "$AMPLAB_JENKINS_BUILD_PROFILE" = "hadoop2.2" ]; then |
47 |
| - export SBT_MAVEN_PROFILES_ARGS="-Pyarn -Phadoop-2.2" |
48 |
| - elif [ "$AMPLAB_JENKINS_BUILD_PROFILE" = "hadoop2.3" ]; then |
49 |
| - export SBT_MAVEN_PROFILES_ARGS="-Pyarn -Phadoop-2.3 -Dhadoop.version=2.3.0" |
50 |
| - fi |
51 |
| - fi |
52 |
| - |
53 |
| - if [ -z "$SBT_MAVEN_PROFILES_ARGS" ]; then |
54 |
| - export SBT_MAVEN_PROFILES_ARGS="-Pyarn -Phadoop-2.3 -Dhadoop.version=2.3.0" |
55 |
| - fi |
56 |
| -} |
57 |
| - |
58 |
| -export SBT_MAVEN_PROFILES_ARGS="$SBT_MAVEN_PROFILES_ARGS -Pkinesis-asl" |
59 |
| - |
60 |
| -# Determine Java path and version. |
61 |
| -{ |
62 |
| - if test -x "$JAVA_HOME/bin/java"; then |
63 |
| - declare java_cmd="$JAVA_HOME/bin/java" |
64 |
| - else |
65 |
| - declare java_cmd=java |
66 |
| - fi |
67 |
| - |
68 |
| - # We can't use sed -r -e due to OS X / BSD compatibility; hence, all the parentheses. |
69 |
| - JAVA_VERSION=$( |
70 |
| - $java_cmd -version 2>&1 \ |
71 |
| - | grep -e "^java version" --max-count=1 \ |
72 |
| - | sed "s/java version \"\(.*\)\.\(.*\)\.\(.*\)\"/\1\2/" |
73 |
| - ) |
74 |
| - |
75 |
| - if [ "$JAVA_VERSION" -lt 18 ]; then |
76 |
| - echo "[warn] Java 8 tests will not run because JDK version is < 1.8." |
77 |
| - fi |
78 |
| -} |
79 |
| - |
80 |
| -# Only run Hive tests if there are SQL changes. |
81 |
| -# Partial solution for SPARK-1455. |
82 |
| -if [ -n "$AMPLAB_JENKINS" ]; then |
83 |
| - target_branch="$ghprbTargetBranch" |
84 |
| - git fetch origin "$target_branch":"$target_branch" |
85 |
| - |
86 |
| - # AMP_JENKINS_PRB indicates if the current build is a pull request build. |
87 |
| - if [ -n "$AMP_JENKINS_PRB" ]; then |
88 |
| - # It is a pull request build. |
89 |
| - sql_diffs=$( |
90 |
| - git diff --name-only "$target_branch" \ |
91 |
| - | grep -e "^sql/" -e "^bin/spark-sql" -e "^sbin/start-thriftserver.sh" |
92 |
| - ) |
93 |
| - |
94 |
| - non_sql_diffs=$( |
95 |
| - git diff --name-only "$target_branch" \ |
96 |
| - | grep -v -e "^sql/" -e "^bin/spark-sql" -e "^sbin/start-thriftserver.sh" |
97 |
| - ) |
98 |
| - |
99 |
| - if [ -n "$sql_diffs" ]; then |
100 |
| - echo "[info] Detected changes in SQL. Will run Hive test suite." |
101 |
| - _RUN_SQL_TESTS=true |
102 |
| - |
103 |
| - if [ -z "$non_sql_diffs" ]; then |
104 |
| - echo "[info] Detected no changes except in SQL. Will only run SQL tests." |
105 |
| - _SQL_TESTS_ONLY=true |
106 |
| - fi |
107 |
| - fi |
108 |
| - else |
109 |
| - # It is a regular build. We should run SQL tests. |
110 |
| - _RUN_SQL_TESTS=true |
111 |
| - fi |
112 |
| -fi |
113 |
| - |
114 |
| -set -o pipefail |
115 |
| -trap 'handle_error $LINENO' ERR |
116 |
| - |
117 |
| -echo "" |
118 |
| -echo "=========================================================================" |
119 |
| -echo "Running Apache RAT checks" |
120 |
| -echo "=========================================================================" |
121 |
| - |
122 |
| -CURRENT_BLOCK=$BLOCK_RAT |
123 |
| - |
124 |
| -./dev/check-license |
125 |
| - |
126 |
| -echo "" |
127 |
| -echo "=========================================================================" |
128 |
| -echo "Running Scala style checks" |
129 |
| -echo "=========================================================================" |
130 |
| - |
131 |
| -CURRENT_BLOCK=$BLOCK_SCALA_STYLE |
132 |
| - |
133 |
| -./dev/lint-scala |
134 |
| - |
135 |
| -echo "" |
136 |
| -echo "=========================================================================" |
137 |
| -echo "Running Python style checks" |
138 |
| -echo "=========================================================================" |
139 |
| - |
140 |
| -CURRENT_BLOCK=$BLOCK_PYTHON_STYLE |
141 |
| - |
142 |
| -./dev/lint-python |
143 |
| - |
144 |
| -echo "" |
145 |
| -echo "=========================================================================" |
146 |
| -echo "Building Spark" |
147 |
| -echo "=========================================================================" |
148 |
| - |
149 |
| -CURRENT_BLOCK=$BLOCK_BUILD |
150 |
| - |
151 |
| -{ |
152 |
| - HIVE_BUILD_ARGS="$SBT_MAVEN_PROFILES_ARGS -Phive -Phive-thriftserver" |
153 |
| - echo "[info] Compile with Hive 0.13.1" |
154 |
| - [ -d "lib_managed" ] && rm -rf lib_managed |
155 |
| - echo "[info] Building Spark with these arguments: $HIVE_BUILD_ARGS" |
156 |
| - |
157 |
| - if [ "${AMPLAB_JENKINS_BUILD_TOOL}" == "maven" ]; then |
158 |
| - build/mvn $HIVE_BUILD_ARGS clean package -DskipTests |
159 |
| - else |
160 |
| - echo -e "q\n" \ |
161 |
| - | build/sbt $HIVE_BUILD_ARGS package assembly/assembly streaming-kafka-assembly/assembly \ |
162 |
| - | grep -v -e "info.*Resolving" -e "warn.*Merging" -e "info.*Including" |
163 |
| - fi |
164 |
| -} |
165 |
| - |
166 |
| -echo "" |
167 |
| -echo "=========================================================================" |
168 |
| -echo "Detecting binary incompatibilities with MiMa" |
169 |
| -echo "=========================================================================" |
170 |
| - |
171 |
| -CURRENT_BLOCK=$BLOCK_MIMA |
172 |
| - |
173 |
| -./dev/mima |
174 |
| - |
175 |
| -echo "" |
176 |
| -echo "=========================================================================" |
177 |
| -echo "Running Spark unit tests" |
178 |
| -echo "=========================================================================" |
179 |
| - |
180 |
| -CURRENT_BLOCK=$BLOCK_SPARK_UNIT_TESTS |
181 |
| - |
182 |
| -{ |
183 |
| - # If the Spark SQL tests are enabled, run the tests with the Hive profiles enabled. |
184 |
| - # This must be a single argument, as it is. |
185 |
| - if [ -n "$_RUN_SQL_TESTS" ]; then |
186 |
| - SBT_MAVEN_PROFILES_ARGS="$SBT_MAVEN_PROFILES_ARGS -Phive -Phive-thriftserver" |
187 |
| - fi |
188 |
| - |
189 |
| - if [ -n "$_SQL_TESTS_ONLY" ]; then |
190 |
| - # This must be an array of individual arguments. Otherwise, having one long string |
191 |
| - # will be interpreted as a single test, which doesn't work. |
192 |
| - SBT_MAVEN_TEST_ARGS=("catalyst/test" "sql/test" "hive/test" "hive-thriftserver/test" "mllib/test") |
193 |
| - else |
194 |
| - SBT_MAVEN_TEST_ARGS=("test") |
195 |
| - fi |
196 |
| - |
197 |
| - echo "[info] Running Spark tests with these arguments: $SBT_MAVEN_PROFILES_ARGS ${SBT_MAVEN_TEST_ARGS[@]}" |
198 |
| - |
199 |
| - if [ "${AMPLAB_JENKINS_BUILD_TOOL}" == "maven" ]; then |
200 |
| - build/mvn test $SBT_MAVEN_PROFILES_ARGS --fail-at-end |
201 |
| - else |
202 |
| - # NOTE: echo "q" is needed because sbt on encountering a build file with failure |
203 |
| - # (either resolution or compilation) prompts the user for input either q, r, etc |
204 |
| - # to quit or retry. This echo is there to make it not block. |
205 |
| - # NOTE: Do not quote $SBT_MAVEN_PROFILES_ARGS or else it will be interpreted as a |
206 |
| - # single argument! |
207 |
| - # "${SBT_MAVEN_TEST_ARGS[@]}" is cool because it's an array. |
208 |
| - # QUESTION: Why doesn't 'yes "q"' work? |
209 |
| - # QUESTION: Why doesn't 'grep -v -e "^\[info\] Resolving"' work? |
210 |
| - echo -e "q\n" \ |
211 |
| - | build/sbt $SBT_MAVEN_PROFILES_ARGS "${SBT_MAVEN_TEST_ARGS[@]}" \ |
212 |
| - | grep -v -e "info.*Resolving" -e "warn.*Merging" -e "info.*Including" |
213 |
| - fi |
214 |
| -} |
215 |
| - |
216 |
| -echo "" |
217 |
| -echo "=========================================================================" |
218 |
| -echo "Running PySpark tests" |
219 |
| -echo "=========================================================================" |
220 |
| - |
221 |
| -CURRENT_BLOCK=$BLOCK_PYSPARK_UNIT_TESTS |
222 |
| - |
223 |
| -# add path for python 3 in jenkins |
224 |
| -export PATH="${PATH}:/home/anaconda/envs/py3k/bin" |
225 |
| -./python/run-tests |
226 |
| - |
227 |
| -echo "" |
228 |
| -echo "=========================================================================" |
229 |
| -echo "Running SparkR tests" |
230 |
| -echo "=========================================================================" |
231 |
| - |
232 |
| -CURRENT_BLOCK=$BLOCK_SPARKR_UNIT_TESTS |
233 |
| - |
234 |
| -if [ $(command -v R) ]; then |
235 |
| - ./R/install-dev.sh |
236 |
| - ./R/run-tests.sh |
237 |
| -else |
238 |
| - echo "Ignoring SparkR tests as R was not found in PATH" |
239 |
| -fi |
240 |
| - |
| 23 | +exec python -u ./dev/run-tests.py |
0 commit comments