blob: 2cf5942b5fad5b4702452052fb894b155e7d7572 [file] [log] [blame]
# 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.
sudo: required
before_cache:
- sudo chown -R travis:travis $HOME/.m2
cache:
apt: true
directories:
- ${HOME}/.m2
- submarine-workbench/workbench-web/node
- submarine-workbench/workbench-web/node_modules
addons:
apt:
sources:
- mysql-5.7-trusty
packages:
- mysql-server
- mysql-client
services:
- mysql
# https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-a-GUI
- xvfb
env:
global:
# If you need to compile Phadoop-3.1 or Phadoop-3.2, you need to add `!submarine-server/server-submitter/submitter-yarnservice` in EXCLUDE_SUBMARINE
- SUBMARINE="org.apache.submarine"
- EXCLUDE_SUBMARINE="!:submarine-all,!:submarine-client,!:submarine-dist"
- EXCLUDE_SERVER="!:submarine-server-api,!:submarine-server-core,!:submarine-server-rpc"
- EXCLUDE_CLIENT="!:submarine-client"
- EXCLUDE_ALL="!:submarine-all"
- EXCLUDE_WORKBENCH="!:submarine-workbench,!:submarine-workbench-web"
- EXCLUDE_INTERPRETER="!:submarine-interpreter,!:submarine-interpreter-core,!:submarine-python-interpreter,!:submarine-spark-interpreter"
- EXCLUDE_SUBMITTER_K8S="!:submarine-submitter-k8s"
- EXCLUDE_SUBMITTER_YARN="!:submarine-submitter-yarn"
- EXCLUDE_SUBMITTER="!:submarine-server-submitter,${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_SUBMITTER_YARN}"
- EXCLUDE_COMMONS="!:submarine-commons-cluster,!:submarine-commons-metastore,!:submarine-commons-rpc,!:submarine-commons-runtime,!:submarine-commons-utils"
- EXCLUDE_CLOUD="!:submarine-cloud"
- EXCLUDE_DIST="!:submarine-dist"
- EXCLUDE_TEST="!:submarine-test,!:submarine-test-e2e,!:submarine-test-k8s"
- EXCLUDE_SPARK_SECURTITY="!:submarine-spark-security"
- MOZ_HEADLESS=1
before_install:
# mysql
- sudo service mysql restart
- ./docs/database/init-database.sh
- ./dev-support/travis/install_external_dependencies.sh
# protobuf 3.10.1
- PROTOBUF_VERSION=3.10.1
- PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip
- pushd /home/travis
- wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME}
- unzip ${PROTOC_FILENAME}
- bin/protoc --version
- popd
matrix:
include:
- name: Test submarine test-k8s
dist: xenial
services: docker
language: java
jdk: openjdk8
addons:
chrome: stable
firefox: latest
# Because submarine on k8s uses port 80, it needs to be set `-Durl=http://127.0.0.1`
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests" TEST_FLAG="verify -DskipRat -am -Durl=http://127.0.0.1"
- MODULES=""
- TEST_MODULES="-pl ${EXCLUDE_SERVER},${EXCLUDE_COMMONS},${EXCLUDE_CLIENT},:submarine-test-k8s"
- TEST_PROJECTS=""
- name: Test submarine test-e2e
language: java
jdk: openjdk8
dist: xenial
addons:
chrome: stable
firefox: latest
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="verify -DskipRat -am"
- TEST_MODULES="-pl org.apache.submarine:submarine-test-e2e"
- TEST_PROJECTS=""
- name: Test submarine commons-cluster
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_COMMONS},${EXCLUDE_SUBMITTER},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLIENT},${EXCLUDE_CLOUD},${EXCLUDE_SERVER},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl org.apache.submarine:submarine-commons-cluster"
- TEST_PROJECTS=""
- name: Test submarine commons-metastore
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_COMMONS},${EXCLUDE_SUBMITTER},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLIENT},${EXCLUDE_CLOUD},${EXCLUDE_SERVER},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl org.apache.submarine:submarine-commons-metastore"
- TEST_PROJECTS=""
- name: Test submarine commons-rpc
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_COMMONS},${EXCLUDE_SUBMITTER},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLIENT},${EXCLUDE_CLOUD},${EXCLUDE_SERVER},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl org.apache.submarine:submarine-commons-rpc"
- TEST_PROJECTS=""
- name: Test submarine commons-runtime
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_COMMONS},${EXCLUDE_SUBMITTER},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLIENT},${EXCLUDE_CLOUD},${EXCLUDE_SERVER},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl org.apache.submarine:submarine-commons-runtime"
- TEST_PROJECTS=""
- name: Test submarine commons-unixusersync
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_COMMONS},${EXCLUDE_SUBMITTER},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLIENT},${EXCLUDE_CLOUD},${EXCLUDE_SERVER},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl org.apache.submarine:submarine-commons-unixusersync"
- TEST_PROJECTS=""
- name: Test submarine server
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_ALL},${EXCLUDE_DIST},${EXCLUDE_TEST}"
- TEST_MODULES="-pl ${EXCLUDE_COMMONS},org.apache.submarine:submarine-server-core"
- TEST_PROJECTS=""
- name: Test submarine submitter on hadoop-2.9 (default)
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.9"
- BUILD_FLAG="clean package install -DskipTests -DskipRat"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_DIST}"
- TEST_MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_COMMONS},${EXCLUDE_DIST},${EXCLUDE_TEST},${EXCLUDE_ALL},${EXCLUDE_SERVER},${EXCLUDE_SPARK_SECURTITY}"
- TEST_PROJECTS=""
- name: Test submarine submitter on hadoop-2.10
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-2.10"
- BUILD_FLAG="clean package install -DskipTests -DskipRat"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_DIST}"
- TEST_MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_COMMONS},${EXCLUDE_DIST},${EXCLUDE_TEST},${EXCLUDE_ALL},${EXCLUDE_SERVER},${EXCLUDE_SPARK_SECURTITY}"
- TEST_PROJECTS=""
- name: Test submarine submitter on hadoop-3.1
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-3.1"
- BUILD_FLAG="clean package install -DskipTests -DskipRat"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_DIST}"
- TEST_MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_COMMONS},${EXCLUDE_DIST},${EXCLUDE_TEST},${EXCLUDE_ALL},${EXCLUDE_SERVER},${EXCLUDE_SPARK_SECURTITY}"
- TEST_PROJECTS=""
- name: Test submarine submitter on hadoop-3.2
language: java
jdk: openjdk8
dist: xenial
env:
- PROFILE="-Phadoop-3.2"
- BUILD_FLAG="clean package install -DskipTests -DskipRat"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_DIST}"
- TEST_MODULES="-pl ${EXCLUDE_SUBMITTER_K8S},${EXCLUDE_WORKBENCH},${EXCLUDE_INTERPRETER},${EXCLUDE_CLOUD},${EXCLUDE_COMMONS},${EXCLUDE_DIST},${EXCLUDE_TEST},${EXCLUDE_ALL},${EXCLUDE_SERVER},${EXCLUDE_SPARK_SECURTITY}"
- TEST_PROJECTS=""
- name: Test submarine interpreter
language: java
jdk: "openjdk8"
dist: xenial
env: PYTHON="3" PROFILE="-Phadoop-2.9" BUILD_FLAG="clean package install -DskipTests -am" TEST_FLAG="test -DskipRat -am" MODULES="-pl $(echo ${EXCLUDE_INTERPRETER} | sed 's/!//g')" TEST_MODULES="-pl $(echo ${EXCLUDE_INTERPRETER} | sed 's/!//g')" TEST_PROJECTS=""
- name: Test submarine workbench-web Angular
language: node_js
node_js:
- "10"
before_install:
- cd submarine-workbench/workbench-web
before_script:
npm install
addons:
chrome: stable
firefox: latest
script:
- npm run test -- --no-watch --no-progress --browsers=ChromeHeadlessCI
- npm run test -- --no-watch --no-progress --browsers=FirefoxHeadless
- npm run webdriver
- npm run e2e -- --protractor-config=e2e/protractor-ci.conf.js
env:
- BUILD_FLAG="clean package -DskipTests"
- TEST_FLAG="test -DskipRat -am"
- MODULES="-pl org.apache.submarine:submarine-workbench-web"
- TEST_MODULES="-pl org.apache.submarine:submarine-workbench-web"
- TEST_PROJECTS=""
- name: Test submarine spark security with spark 2.3 and ranger 1.0
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.3 -Pranger-1.0"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.3 and ranger 1.1
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.3 -Pranger-1.1"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.3 and ranger 1.2
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.3 -Pranger-1.2"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.3 and ranger 2.0
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.3 -Pranger-2.0"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.4 and ranger 1.0
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.4 -Pranger-1.0"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.4 and ranger 1.1
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.4 -Pranger-1.1"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.4 and ranger 1.2
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.4 -Pranger-1.2"
- MODULES="-pl :submarine-spark-security"
- name: Test submarine spark security with spark 2.4 and ranger 2.0
language: scala
jdk: openjdk8
env:
- MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN"
- BUILD_FLAG="--batch-mode clean install -Dmaven.javadoc.skip=true"
- TEST_FLAG=$BUILD_FLAG
- PROFILE="-Pspark-2.4 -Pranger-2.0"
- MODULES="-pl :submarine-spark-security"
install:
- mvn --version
- echo ">>> mvn $BUILD_FLAG $MODULES $PROFILE -B"
- mvn $BUILD_FLAG $MODULES $PROFILE -B
before_script:
# display info log for debugging
- if [[ -n $TEST_MODULES ]]; then echo "MAVEN_OPTS='-Xms1024M -Xmx2048M -XX:MaxPermSize=1024m -XX:-UseGCOverheadLimit -Dorg.slf4j.simpleLogger.defaultLogLevel=info'" > ~/.mavenrc; fi
script:
- if [[ -n $TEST_MODULES ]]; then export MODULES="${TEST_MODULES}"; fi
- echo ">>> mvn $TEST_FLAG $MODULES $PROFILE -B $TEST_PROJECTS"
- mvn $TEST_FLAG $MODULES $PROFILE -B $TEST_PROJECTS
after_success:
- echo "Travis exited with ${TRAVIS_TEST_RESULT}"
after_failure:
- echo "Travis exited with ${TRAVIS_TEST_RESULT}"
- find . -name rat.txt | xargs cat
- cat logs/*