concourse/scripts/build.bash (58 lines of code) (raw):
#!/usr/bin/env bash
set -eox pipefail
CWDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
source "${CWDIR}/pxf_common.bash"
GPDB_PKG_DIR=gpdb_package
GPDB_VERSION=$(<"${GPDB_PKG_DIR}/version")
function install_gpdb() {
local pkg_file
if command -v rpm; then
pkg_file=$(find "${GPDB_PKG_DIR}" -name "greenplum-db-${GPDB_VERSION}-rhel*-x86_64.rpm")
echo "Installing RPM ${pkg_file}..."
rpm --quiet -ivh "${pkg_file}" >/dev/null
elif command -v apt-get; then
# apt-get wants a full path
pkg_file=$(find "${PWD}/${GPDB_PKG_DIR}" -name "greenplum-db-${GPDB_VERSION}-ubuntu18.04-amd64.deb")
echo "Installing DEB ${pkg_file}..."
apt-get install -qq "${pkg_file}" >/dev/null
else
echo "Unsupported operating system '$(source /etc/os-release && echo "${PRETTY_NAME}")'. Exiting..."
exit 1
fi
}
function compile_pxf() {
source "${GPHOME}/greenplum_path.sh"
# CentOS releases contain a /etc/redhat-release which is symlinked to /etc/centos-release
if [[ -f /etc/redhat-release ]]; then
MAKE_TARGET="rpm-tar"
elif [[ -f /etc/debian_version ]]; then
MAKE_TARGET="deb-tar"
else
echo "Unsupported operating system '$(source /etc/os-release && echo "${PRETTY_NAME}")'. Exiting..."
exit 1
fi
bash -c "
source ~/.pxfrc
VENDOR='${VENDOR}' LICENSE='${LICENSE}' make -C '${PWD}/pxf_src' ${MAKE_TARGET}
"
}
function package_pxf() {
# verify contents
if [[ -f /etc/redhat-release ]]; then
DIST_DIR=distrpm
elif [[ -f /etc/debian_version ]]; then
DIST_DIR=distdeb
else
echo "Unsupported operating system '$(source /etc/os-release && echo "${PRETTY_NAME}")'. Exiting..."
exit 1
fi
ls -al pxf_src/build/${DIST_DIR}
tar -tvzf pxf_src/build/${DIST_DIR}/pxf-*.tar.gz
cp pxf_src/build/${DIST_DIR}/pxf-*.tar.gz dist
}
install_gpdb
# installation of GPDB from RPM/DEB doesn't ensure that the installation location will match the version
# given in the gpdb_package, so set the GPHOME after installation
GPHOME=$(find /usr/local/ -name "greenplum-db-${GPDB_VERSION}*")
# To Be Removed
# This is temporary to change. Since The PR to incorporate these changes isn't merged in GPDB yet.
HEADER_FILE_GP7=pxf_gp7_headerfile
if [[ ${GPDB_VERSION:0:1} -ge 7 ]]; then
#PROJECT=${GOOGLE_PROJECT_ID:-}
#gcloud config set project "$PROJECT"
#gcloud auth activate-service-account --key-file=<(echo "$GOOGLE_CREDENTIALS")
mkdir ${GPHOME}/include/postgresql/server/extension/gp_exttable_fdw
cp ${HEADER_FILE_GP7}/extaccess.h ${GPHOME}/include/postgresql/server/extension/gp_exttable_fdw
fi
inflate_dependencies
compile_pxf
package_pxf