# 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. matrix: fast_finish: true include: - env: PHASE=tests - env: PHASE=build_checkstyle_protobuf sudo: required language: java jdk: - openjdk8 cache: directories: - "$HOME/.m2" - "$HOME/protobuf" before_install: - git fetch --unshallow # Install libraries required for protobuf generation - | if [ $PHASE = "build_checkstyle_protobuf" ]; then \ sudo apt-get install -y libboost-all-dev libzookeeper-mt-dev libsasl2-dev cmake libcppunit-dev checkinstall && \ pushd .. && \ if [ -f $HOME/protobuf/protobuf_3.6.1* ]; then \ sudo dpkg -i $HOME/protobuf/protobuf_3.6.1*; \ else \ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-java-3.6.1.zip && \ unzip protobuf-java-3.6.1.zip && pushd protobuf-3.6.1 && \ ./configure && sudo make && sudo checkinstall -y && \ if [ ! -d $HOME/protobuf ]; then \ mkdir -p $HOME/protobuf; \ fi && \ mv protobuf_3.6.1* $HOME/protobuf/ && popd; \ fi && \ sudo ldconfig && popd; \ fi install: # For tests phase runs unit tests # For protobuf phase: builds Drill project, performs license checkstyle goal and regenerates Java and C++ Protobuf files - | if [ $PHASE = "tests" ]; then \ mvn install --batch-mode -DexcludedGroups="org.apache.drill.categories.SlowTest,org.apache.drill.categories.UnlikelyTest,org.apache.drill.categories.SecurityTest" -DforkCount=1 -DmemoryMb=2560 -DdirectMemoryMb=4608 -Ptravis; \ elif [ $PHASE = "build_checkstyle_protobuf" ]; then \ MAVEN_OPTS="-Xms1G -Xmx1G" mvn install -Drat.skip=false -Dlicense.skip=false --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -DskipTests=true -Dmaven.javadoc.skip=true -Dmaven.source.skip=true && \ pushd protocol && mvn process-sources -P proto-compile && popd && \ mkdir contrib/native/client/build && pushd contrib/native/client/build && cmake -G "Unix Makefiles" .. && make cpProtobufs && popd; \ fi script: # Checks whether project files weren't changed after regenerating protobufs - | if [ "$(git status -s | grep -c "")" -gt 0 ]; then \ echo "The following changes are found in files after regenerating protobufs (output may be used as a patch to apply):" >&2 && echo "$(git diff --color)" && \ exit 1; \ else echo "All checks are passed!"; fi