| # 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: Apache HAWQ |
| |
| on: [push, pull_request] |
| |
| jobs: |
| Build-and-Test: |
| |
| strategy: |
| fail-fast: false |
| matrix: |
| platform: [ubuntu-18.04, macos-latest] |
| |
| runs-on: ${{ matrix.platform }} |
| |
| steps: |
| |
| - uses: actions/checkout@v2 |
| |
| - name: lint check |
| run: | |
| ulimit -a |
| mvn apache-rat:check |
| |
| - name: initilize OS |
| run: | |
| case $(uname -s) in |
| Darwin) .github/workflows/scripts/init_macos.sh ;; |
| Linux) .github/workflows/scripts/init_linux.sh ;; |
| esac |
| |
| - name: install thirdparty |
| run: | |
| set -x |
| source .github/workflows/scripts/toolchain.sh |
| |
| - name: configure |
| timeout-minutes: 10 |
| run: | |
| source .github/workflows/scripts/toolchain.sh |
| |
| ./configure --prefix=/tmp/hawq || cat config.log |
| test -f config.status |
| |
| - name: build hawq |
| run: | |
| source .github/workflows/scripts/toolchain.sh |
| make |
| make install |
| |
| - name: build feature-test |
| run: | |
| source .github/workflows/scripts/toolchain.sh |
| make feature-test |
| |
| - name: package HAWQ on Linux |
| if: runner.os == 'Linux' |
| run: | |
| source .github/workflows/scripts/toolchain.sh |
| cp -r $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/* /tmp/hawq/lib |
| |
| - name: package HAWQ on macOS |
| if: runner.os == 'macOS' |
| run: | |
| source .github/workflows/scripts/toolchain.sh |
| for file in $(find /tmp/hawq/bin /tmp/hawq/lib -name '*' -type f); do |
| if [[ $(file $file | grep Mach-O) ]]; then |
| install_name_tool -add_rpath /tmp/hawq/lib $file; |
| fi |
| done |
| cp -r $HAWQ_TOOLCHAIN_PATH/dependency/package/lib/* /tmp/hawq/lib |
| |
| - name: test executable |
| run: | |
| source /tmp/hawq/greenplum_path.sh |
| postgres -V |
| src/test/feature/feature-test --gtest_list_tests |
| |
| - name: install HDFS |
| run: | |
| wget -nv https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz |
| sudo install -o $USER -d /usr/local/hadoop-3.3.0 |
| sudo ln -snf hadoop-3.3.0 /usr/local/hadoop |
| sudo tee /usr/local/bin/hdfs <<<'exec /usr/local/hadoop/bin/hdfs $@' |
| sudo chmod a+x /usr/local/bin/hdfs |
| tar xf hadoop-3.3.0.tar.gz -C /usr/local/ |
| |
| - name: initilize HDFS |
| run: | |
| export HADOOP_HOME=/usr/local/hadoop/ |
| .github/workflows/scripts/init_hdfs.sh |
| sudo -u $USER hdfs dfs -ls / |
| |
| - name: initilize HAWQ |
| run: | |
| source /tmp/hawq/greenplum_path.sh |
| .github/workflows/scripts/init_hawq.sh |
| psql -d postgres -c 'create database hawq_feature_test_db;' |
| src/test/feature/feature-test --gtest_filter=TestDatabase.BasicTest |
| |
| - name: test HAWQ |
| run: | |
| source /tmp/hawq/greenplum_path.sh |
| source .github/workflows/scripts/gtest_filter_negative |
| export PGDATABASE=hawq_feature_test_db |
| src/test/feature/feature-test --gtest_filter=*-$GTEST_FILTER_NEGATIVE |
| |
| - name: test scripts's idempotence |
| run: | |
| case $(uname -s) in |
| Darwin) .github/workflows/scripts/init_macos.sh ;; |
| Linux) .github/workflows/scripts/init_linux.sh ;; |
| esac |
| |
| export HADOOP_HOME=/usr/local/hadoop/ |
| .github/workflows/scripts/init_hdfs.sh |
| |
| source /tmp/hawq/greenplum_path.sh |
| .github/workflows/scripts/init_hawq.sh |
| psql -d postgres -c 'create database hawq_feature_test_db;' |
| src/test/feature/feature-test --gtest_filter=TestDatabase.BasicTest |