Skip to content

Velox backend nightly release #406

Velox backend nightly release

Velox backend nightly release #406

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 nightly release
on:
push:
branches:
- main
paths:
- '.github/workflows/velox_nightly.yml'
schedule:
- cron: '0 0 * * *'
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
CCACHE_DIR: "${{ github.workspace }}/.ccache"
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
build-native-lib-x86:
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Get Ccache
uses: actions/cache/restore@v4
with:
path: '${{ env.CCACHE_DIR }}'
key: ccache-centos7-release-default-${{github.sha}}
restore-keys: |
ccache-centos7-release-default
- name: Build Gluten velox third party
run: |
docker run -v $GITHUB_WORKSPACE:/work -w /work apache/gluten:vcpkg-centos-7 bash -c "
df -a
cd /work
export CCACHE_DIR=/work/.ccache
bash dev/ci-velox-buildstatic-centos-7.sh
ccache -s
mkdir -p /work/.m2/repository/org/apache/arrow/
cp -r /root/.m2/repository/org/apache/arrow/* /work/.m2/repository/org/apache/arrow/
"
- name: Upload native libs
uses: actions/upload-artifact@v4
with:
path: ./cpp/build/releases/
name: velox-native-lib-${{github.sha}}
retention-days: 1
- name: Upload Artifact Arrow Jar
uses: actions/upload-artifact@v4
with:
path: .m2/repository/org/apache/arrow/
name: velox-arrow-jar-centos-7-${{github.sha}}
build-bundle-package-centos8-jdk8-x86:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-x86
runs-on: ubuntu-22.04
container: centos:8
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-7-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
yum update -y && yum install -y java-1.8.0-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-3.3 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.4 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.5 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk8-x86-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
build-bundle-package-centos8-jdk17-x86:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-x86
runs-on: ubuntu-22.04
container: centos:8
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-7-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
yum update -y && yum install -y java-17-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-3.4 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.5 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk17-x86-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
build-bundle-package-centos9-jdk21-x86:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-x86
runs-on: ubuntu-22.04
container: quay.io/centos/centos:stream9
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-7-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
yum update -y && yum install -y java-21-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk21-x86-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
#build and package for arm64
build-native-lib-centos-8-arm64:
if: ${{ startsWith(github.repository, 'apache/') }}
runs-on: ubuntu-24.04-arm
container: apache/gluten:vcpkg-centos-8
steps:
- uses: actions/checkout@v4
- name: Get Ccache
uses: actions/cache/restore@v4
with:
path: '${{ env.CCACHE_DIR }}'
key: ccache-centos8-release-default-${{runner.arch}}-${{github.sha}}
restore-keys: |
ccache-centos8-release-default-${{runner.arch}}
- name: Build Gluten native libraries
run: |
df -a
export ARM_BUILD_TARGET=false
bash dev/ci-velox-buildstatic-centos-8.sh
ccache -s
mkdir -p $GITHUB_WORKSPACE/.m2/repository/org/apache/arrow/
cp -r /root/.m2/repository/org/apache/arrow/* $GITHUB_WORKSPACE/.m2/repository/org/apache/arrow/
- name: "Save ccache"
uses: actions/cache/save@v4
id: ccache
with:
path: '${{ env.CCACHE_DIR }}'
key: ccache-centos8-release-default-${{runner.arch}}-${{github.sha}}
- uses: actions/upload-artifact@v4
with:
name: velox-native-lib-centos-8-${{github.sha}}
path: ./cpp/build/releases/
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: velox-arrow-jar-centos-8-${{github.sha}}
path: .m2/repository/org/apache/arrow/
if-no-files-found: error
build-bundle-package-centos8-jdk8-arm64:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-centos-8-arm64
runs-on: ubuntu-22.04-arm
container: centos:8
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-centos-8-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-8-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
yum update -y && yum install -y java-1.8.0-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-3.3 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.4 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.5 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk8-arm64-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
build-bundle-package-centos8-jdk17-arm64:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-centos-8-arm64
runs-on: ubuntu-22.04-arm
container: centos:8
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-centos-8-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-8-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
yum update -y && yum install -y java-17-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-3.4 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.5 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk17-arm64-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
build-bundle-package-centos9-jdk21-arm64:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: build-native-lib-centos-8-arm64
runs-on: ubuntu-22.04-arm
container: quay.io/centos/centos:stream9
steps:
- uses: actions/checkout@v4
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: velox-native-lib-centos-8-${{github.sha}}
path: ./cpp/build/releases
- name: Download All Arrow Jar Artifacts
uses: actions/download-artifact@v4
with:
name: velox-arrow-jar-centos-8-${{github.sha}}
path: /root/.m2/repository/org/apache/arrow/
- name: Setup java
run: |
yum update -y && yum install -y java-21-openjdk-devel
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build package for Spark
run: |
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
- name: Upload bundle package
uses: actions/upload-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk21-arm64-${{ steps.date.outputs.date }}
path: package/target/gluten-velox-bundle-*.jar
retention-days: 7
# upload package to nightly.apache.org
upload-jdk8-package:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: [build-bundle-package-centos8-jdk8-arm64, build-bundle-package-centos8-jdk8-x86]
runs-on: ubuntu-22.04
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Download ARM JDK8 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk8-arm64-${{ steps.date.outputs.date }}
path: package/
- name: Download X86 JDK8 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk8-x86-${{ steps.date.outputs.date }}
path: package/
- name: rsync to apache nightly
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823
with:
switches: -avzr --delete
path: package/gluten-velox-bundle-*.jar
remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/gluten/nightly-release-jdk8
remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }}
remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }}
remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}
upload-jdk17-package:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: [build-bundle-package-centos8-jdk17-arm64, build-bundle-package-centos8-jdk17-x86]
runs-on: ubuntu-22.04
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Download ARM JDK17 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk17-arm64-${{ steps.date.outputs.date }}
path: package/
- name: Download X86 JDK17 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk17-x86-${{ steps.date.outputs.date }}
path: package/
- name: rsync to apache nightly
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823
with:
switches: -avzr --delete
path: package/gluten-velox-bundle-*.jar
remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/gluten/nightly-release-jdk17
remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }}
remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }}
remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}
upload-jdk21-package:
if: ${{ startsWith(github.repository, 'apache/') }}
needs: [ build-bundle-package-centos9-jdk21-arm64, build-bundle-package-centos9-jdk21-x86 ]
runs-on: ubuntu-22.04
steps:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Download ARM JDK21 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk21-arm64-${{ steps.date.outputs.date }}
path: package/
- name: Download X86 JDK21 Package Artifacts
uses: actions/download-artifact@v4
with:
name: nightly-gluten-velox-bundle-package-jdk21-x86-${{ steps.date.outputs.date }}
path: package/
- name: rsync to apache nightly
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823
with:
switches: -avzr --delete
path: package/gluten-velox-bundle-*.jar
remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/gluten/nightly-release-jdk21
remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }}
remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }}
remote_user: ${{ secrets.NIGHTLIES_RSYNC_USER }}
remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }}