blob: 40607303b243fa48282c8256475bc74675034682 [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.
# s3 deployment based on http://about.travis-ci.org/blog/2012-12-18-travis-artifacts/
# send to fully-virtualized infrastructure: https://docs.travis-ci.com/user/trusty-ci-environment/
sudo: required
dist: trusty
cache:
# default timeout is too low
timeout: 600
directories:
- $HOME/.rvm/
- $HOME/.m2
- $HOME/flink_cache
# keep in sync with tools/travis/setup_maven.sh
- $HOME/maven_cache
# do not cache our own artifacts
before_cache:
- rm -rf $HOME/.m2/repository/org/apache/flink/
install: true
language: java
git:
depth: 100
env:
global:
# Global variable to avoid hanging travis builds when downloading cache archives.
- MALLOC_ARENA_MAX=2
- DOCKER_COMPOSE_VERSION=1.22.0
- CHANGE_MINIKUBE_NONE_USER=true
before_script:
- "gem install --no-document --version 0.8.9 faraday "
- "export -f travis_nanoseconds"
- "export -f travis_time_start"
- "export -f travis_time_finish"
# Download kubectl, which is a requirement for using minikube.
- curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
# Download minikube.
- curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
- sudo minikube start --vm-driver=none --kubernetes-version=v1.9.0
# Fix the kubectl context, as it's often stale.
- minikube update-context
# Wait for Kubernetes to be up and ready.
- JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done
# Install maven 3.2.5 since trusty uses 3.3.9 for which shading is broken
before_install:
- source ./tools/travis/setup_maven.sh
# Installing the specified docker compose version
- sudo rm /usr/local/bin/docker-compose
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
notifications:
slack:
rooms:
- secure: ikPQn5JTpkyzxVyOPm/jIl3FPm6hY8xAdG4pSwxGWjBqF+NmmNTp9YZsJ6fD8xPql6T5n1hNDbZSC14jVUw/vvXGvibDXLN+06f25ZQl+4LJBXaiR7gTG6y3nO8G90Vw7XpvCme6n5Md9tvjygb17a4FEgRJFfwzWnnyPA1yvK0=
on_success: never
on_pull_requests: false
stages:
- name: compile
- name: test
- name: E2E
if: type = cron
- name: cleanup
jdk: "oraclejdk8"
jobs:
include:
# main profile
- if: type in (pull_request, push)
stage: compile
script: ./tools/travis_controller.sh compile
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: compile
- if: type in (pull_request, push)
stage: test
script: ./tools/travis_controller.sh core
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: core
- if: type in (pull_request, push)
script: ./tools/travis_controller.sh libraries
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: libraries
- if: type in (pull_request, push)
script: ./tools/travis_controller.sh connectors
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: connectors
- if: type in (pull_request, push)
script: ./tools/travis_controller.sh tests
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: tests
- if: type in (pull_request, push)
script: ./tools/travis_controller.sh misc
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: misc
- if: type in (pull_request, push)
stage: cleanup
script: ./tools/travis_controller.sh cleanup
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.11"
name: cleanup
# hadoop 2.4.1 profile
- if: type = cron
stage: compile
script: ./tools/travis_controller.sh compile
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: compile - hadoop 2.4.1
- if: type = cron
stage: test
script: ./tools/travis_controller.sh core
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: core - hadoop 2.4.1
- if: type = cron
script: ./tools/travis_controller.sh libraries
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: libraries - hadoop 2.4.1
- if: type = cron
script: ./tools/travis_controller.sh connectors
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: connectors - hadoop 2.4.1
- if: type = cron
script: ./tools/travis_controller.sh tests
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: tests - hadoop 2.4.1
- if: type = cron
script: ./tools/travis_controller.sh misc
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: misc - hadoop 2.4.1
- if: type = cron
stage: cleanup
script: ./tools/travis_controller.sh cleanup
env: PROFILE="-Dhadoop.version=2.4.1 -Pinclude-kinesis"
name: cleanup - hadoop 2.4.1
# scala 2.12 profile
- if: type = cron
stage: compile
script: ./tools/travis_controller.sh compile
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: compile - scala 2.12
- if: type = cron
stage: test
script: ./tools/travis_controller.sh core
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: core - scala 2.12
- if: type = cron
script: ./tools/travis_controller.sh libraries
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: libraries - scala 2.12
- if: type = cron
script: ./tools/travis_controller.sh connectors
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: connectors - scala 2.12
- if: type = cron
script: ./tools/travis_controller.sh tests
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: tests - scala 2.12
- if: type = cron
script: ./tools/travis_controller.sh misc
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: misc - scala 2.12
- if: type = cron
stage: cleanup
script: ./tools/travis_controller.sh cleanup
env: PROFILE="-Dhadoop.version=2.8.3 -Pinclude-kinesis -Dinclude_hadoop_aws -Dscala-2.112"
name: cleanup - scala 2.12
# E2E profile
- stage: E2E
env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -De2e-metrics -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_misc.sh
name: misc - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_ha.sh
name: ha - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_sticky.sh
name: sticky - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_checkpoints.sh
name: checkpoints - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_container.sh
name: container - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_heavy.sh
name: heavy - hadoop 2.8
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -De2e-metrics -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_misc.sh
name: misc - scala 2.12
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_ha.sh
name: ha - scala 2.12
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_sticky.sh
name: sticky - scala 2.12
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_checkpoints.sh
name: checkpoints - scala 2.12
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_container.sh
name: container - scala 2.12
- env: PROFILE="-Dinclude-hadoop -Dhadoop.version=2.8.3 -Dscala-2.12 -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_heavy.sh
name: heavy - scala 2.12
- env: PROFILE="-De2e-metrics -Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_misc_hadoopfree.sh
name: misc
- env: PROFILE="-Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_ha.sh
name: ha
- env: PROFILE="-Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_sticky.sh
name: sticky
- env: PROFILE="-Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_checkpoints.sh
name: checkpoints
- env: PROFILE="-Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_container.sh
name: container
- env: PROFILE="-Dinclude-kinesis"
script: ./tools/travis/nightly.sh split_heavy.sh
name: heavy