This is an automated email from the ASF dual-hosted git repository. xiangfu pushed a commit to branch adding_github_actions in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit dac7e5af25933f310ba1e01ab72255264a1a2eb9 Author: Xiang Fu <[email protected]> AuthorDate: Sat Jun 6 17:37:14 2020 -0700 Adding github actions for pinot tests --- .github/workflows/pinot_tests.yml | 55 ++++++++++++++++ .github/workflows/scripts/.pinot_test.sh | 110 +++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) diff --git a/.github/workflows/pinot_tests.yml b/.github/workflows/pinot_tests.yml new file mode 100644 index 0000000..a31f21a --- /dev/null +++ b/.github/workflows/pinot_tests.yml @@ -0,0 +1,55 @@ +# +# 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. +# + +name: Pinot Tests + +on: + push: + branches: [ master, adding_github_actions ] + pull_request: + branches: [ master ] + +jobs: + unit-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Unit Test + env: + RUN_INTEGRATION_TESTS: false + GITHUB_CONTEXT: ${{ toJson(github) }} + run: .github/workflows/scripts/.pinot_test.sh + + integration-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Integration Test + env: + RUN_INTEGRATION_TESTS: true + GITHUB_CONTEXT: ${{ toJson(github) }} + run: .github/workflows/scripts/.pinot_test.sh diff --git a/.github/workflows/scripts/.pinot_test.sh b/.github/workflows/scripts/.pinot_test.sh new file mode 100755 index 0000000..24710f0 --- /dev/null +++ b/.github/workflows/scripts/.pinot_test.sh @@ -0,0 +1,110 @@ +#!/bin/bash -x +# +# 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. +# + + +jdk_version() { + local result + local java_cmd='java' + local IFS=$'\n' + # remove \r for Cygwin + local lines=$("$java_cmd" -Xms32M -Xmx32M -version 2>&1 | tr '\r' '\n') + if [[ -z $java_cmd ]] + then + result=no_java + else + for line in $lines; do + if [[ (-z $result) && ($line = *"version \""*) ]] + then + local ver=$(echo $line | sed -e 's/.*version "\(.*\)"\(.*\)/\1/; 1q') + # on macOS, sed doesn't support '?' + if [[ $ver = "1."* ]] + then + result=$(echo $ver | sed -e 's/1\.\([0-9]*\)\(.*\)/\1/; 1q') + else + result=$(echo $ver | sed -e 's/\([0-9]*\)\(.*\)/\1/; 1q') + fi + fi + done + fi + echo "$result" +} + + +# ThirdEye related changes +JAVA_VER="$(jdk_version)" +echo "${JAVA_VER}" +printenv +cat "${GITHUB_EVENT_PATH}" +COMMIT_BEFORE=$(jq -r ".before" "${GITHUB_EVENT_PATH}") +COMMIT_AFTER=$(jq -r ".after" "${GITHUB_EVENT_PATH}") +echo "${COMMIT_BEFORE}" +echo "${COMMIT_AFTER}" +git diff --name-only "${COMMIT_BEFORE}" "${COMMIT_AFTER}" | grep -E '^(thirdeye)' +if [ $? -eq 0 ]; then + echo 'ThirdEye changes.' + + if [ "$TRAVIS_JDK_VERSION" != 'oraclejdk8' ]; then + echo 'Skip ThirdEye tests for version other than oracle jdk8.' + exit 0 + fi + + if [ "${RUN_INTEGRATION_TESTS}" == 'false' ]; then + echo 'Skip ThirdEye tests when integration tests off' + exit 0 + fi + + cd thirdeye + mvn test + failed=$? + if [ $failed -eq 0 ]; then + exit 0 + else + exit 1 + fi +fi + +# Only run tests for JDK 8 +if [ "$TRAVIS_JDK_VERSION" != 'oraclejdk8' ]; then + echo 'Skip tests for version other than oracle jdk8.' + exit 0 +fi + +passed=0 + +# Only run integration tests if needed +if [ "$RUN_INTEGRATION_TESTS" != 'false' ]; then + mvn test -B -P travis,travis-integration-tests-only + if [ $? -eq 0 ]; then + passed=1 + fi +else + mvn test -B -P travis,travis-no-integration-tests + if [ $? -eq 0 ]; then + passed=1 + fi +fi + +if [ $passed -eq 1 ]; then + # Only send code coverage data if passed + bash <(cat .codecov_bash) + exit 0 +else + exit 1 +fi --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
