Skip to content

Fix build issues reported by weekly jobs #357

Fix build issues reported by weekly jobs

Fix build issues reported by weekly jobs #357

Workflow file for this run

# 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: Velox Backend Weekly Job
on:
pull_request:
paths:
- '.github/workflows/velox_weekly.yml'
- 'build/mvn'
schedule:
- cron: '0 20 * * 0'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
TPCH_TEST: "env GLUTEN_IT_JVM_ARGS=-Xmx5G sbin/gluten-it.sh queries-compare
--local --preset=velox --benchmark-type=h --error-on-memleak --off-heap-size=10g -s=1.0 --threads=16 --iterations=1"
INSTALL_PREFIX: /usr/local
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
build-on-centos:
strategy:
fail-fast: false
matrix:
os: [ "centos:8", "quay.io/centos/centos:stream9" ]
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: ubuntu-22.04
container: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Update mirror list
run: |
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* || true
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-* || true
- name: build
run: |
if [ "${{ matrix.os }}" = "centos:8" ]; then
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* || true
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-* || true
dnf install -y centos-release-stream
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Stream-* || true
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Stream-* || true
dnf swap -y --allowerasing centos-{linux,stream}-repos
fi
dnf update -y
dnf install -y sudo
dnf install -y --setopt=install_weak_deps=False gcc-toolset-12
source /opt/rh/gcc-toolset-12/enable || exit 1
yum install -y java-1.8.0-openjdk-devel patch wget git perl
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk && \
export PATH=$JAVA_HOME/bin:$PATH
cd $GITHUB_WORKSPACE/ && ./dev/package.sh --spark_version=3.5
build-on-ubuntu:
strategy:
fail-fast: false
matrix:
os: [ "ubuntu:22.04" ] # skip "ubuntu:20.04" due to not enough disk space
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: ubuntu-22.04
container: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: build
run: |
# sed -i 's|http://archive|http://us.archive|g' /etc/apt/sources.list
# To avoid the prompt for region selection during installing tzdata.
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get install -y sudo maven wget git curl
if [ "${{ matrix.os }}" = "ubuntu:20.04" ]; then
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install -y gcc-11 g++-11 build-essential cmake
export CC=/usr/bin/gcc-11
export CXX=/usr/bin/g++-11
wget https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.tar.gz
tar xf v0.8.1.tar.gz
cd xxHash-0.8.1/
make && make install
cd /tmp
wget https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz
tar xf v1.13.0.tar.gz && cd googletest-1.13.0/
export CXXFLAGS=-fPIC
cmake . && make install -j
apt autoremove -y
rm -rf /tmp/*
fi
sudo apt-get install -y openjdk-8-jdk python3-pip cmake
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
cd $GITHUB_WORKSPACE/ && ./dev/package.sh --spark_version=3.5
build-on-openeuler:
strategy:
fail-fast: false
matrix:
os: [ "openeuler/openeuler:24.03" ]
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: ubuntu-24.04-arm
container: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf update -y && dnf install -y java-1.8.0-openjdk-devel sudo patch git perl
echo "JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> $GITHUB_ENV
- name: Build
run: |
echo "JAVA_HOME: $JAVA_HOME"
cd $GITHUB_WORKSPACE/
./dev/package.sh --spark_version=3.5
cd $GITHUB_WORKSPACE/tools/gluten-it
$GITHUB_WORKSPACE/build/mvn -ntp clean install -Pspark-3.5
cp $GITHUB_WORKSPACE/package/target/thirdparty-lib/gluten-thirdparty-lib-*.jar package/target/lib/
- name: Run TPC-H
run: |
echo "JAVA_HOME: $JAVA_HOME"
cd $GITHUB_WORKSPACE/tools/gluten-it
$TPCH_TEST --extra-conf=spark.gluten.loadLibFromJar=true \
--extra-conf=spark.gluten.loadLibOS=openEuler --extra-conf=spark.gluten.loadLibOSVersion=24.03
# build-on-openeuler-vcpkg: temporarily disabled - ICU fails to compile on arm64
# with the current vcpkg baseline. Needs upstream vcpkg ICU port fix for arm64.
#
# build-on-openeuler-vcpkg:
# strategy:
# fail-fast: false
# matrix:
# os: [ "openeuler/openeuler:24.03" ]
# if: ${{ startsWith(github.repository, 'apache/') }}
# runs-on: ubuntu-24.04-arm
# container: ${{ matrix.os }}
# steps:
# - uses: actions/checkout@v4
# - name: Install dependencies
# run: |
# dnf update -y && dnf install -y java-1.8.0-openjdk-devel sudo patch git perl
# echo "JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> $GITHUB_ENV
# - name: Build
# run: |
# echo "JAVA_HOME: $JAVA_HOME"
# cd $GITHUB_WORKSPACE/
# ./dev/vcpkg/setup-build-depends.sh
# ./dev/package-vcpkg.sh --build_arrow=ON --spark_version=3.5
# cd $GITHUB_WORKSPACE/tools/gluten-it
# $GITHUB_WORKSPACE/build/mvn -ntp clean install -Pspark-3.5
# - name: Run TPC-H
# run: |
# echo "JAVA_HOME: $JAVA_HOME"
# cd $GITHUB_WORKSPACE/tools/gluten-it
# $TPCH_TEST
build-on-macos:
strategy:
fail-fast: false
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: macos-15
env:
INSTALL_PREFIX: /tmp/deps-install
steps:
- uses: actions/checkout@v5
- name: Set up Java 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Install Dependencies
run: brew install wget pkgconfig abseil ccache
- name: Build
run: ./dev/buildbundle-veloxbe.sh --run_setup_script=ON --build_arrow=ON --build_tests=ON --build_benchmarks=ON --spark_version=3.5