blob: 3b32df6c01c7c372ea2986cd9fb0f2e47b9879cc [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.
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