Skip to content

ORC-1783: Add MacOS 15 to GitHub Action MacOS CI and docs #4247

ORC-1783: Add MacOS 15 to GitHub Action MacOS CI and docs

ORC-1783: Add MacOS 15 to GitHub Action MacOS CI and docs #4247

name: Build and test
on:
push:
paths-ignore:
- 'site/**'
branches:
- branch-2.0
pull_request:
paths-ignore:
- 'site/**'
branches:
- branch-2.0
# Cancel previous PR build and test
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.number || github.sha }}
cancel-in-progress: true
jobs:
docker:
name: "Docker ${{ matrix.os }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os:
- debian11
- debian12
- ubuntu24
- fedora37
- oraclelinux9
steps:
- name: Checkout
uses: actions/checkout@v2
- name: "Test"
run: |
cd docker
./run-one.sh local branch-2.0 ${{ matrix.os }}
build:
name: "Java ${{ matrix.java }} and ${{ matrix.cxx }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
- macos-13
- macos-14
- macos-15
java:
- 17
- 21
cxx:
- clang++
include:
- os: ubuntu-22.04
java: 17
cxx: g++
env:
MAVEN_OPTS: -Xmx2g
MAVEN_SKIP_RC: true
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache Maven local repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ matrix.java }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ matrix.java }}-maven-
- name: Install Java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: ${{ matrix.java }}
- name: "Test"
run: |
mkdir -p ~/.m2
mkdir build
cd build
if [ "${{ matrix.os }}" = "ubuntu-20.04" ]; then
cmake -DANALYZE_JAVA=ON -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} -DSTOP_BUILD_ON_WARNING=OFF ..
else
cmake -DANALYZE_JAVA=ON -DOPENSSL_ROOT_DIR=`brew --prefix openssl@1.1` ..
fi
make package test-out
- name: Step on failure
if: ${{ failure() }}
run: |
cat /home/runner/work/orc/orc/build/java/rat.txt
windows:
name: "C++ ${{ matrix.simd }} Test on Windows"
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
simd:
- General
- AVX512
env:
ORC_USER_SIMD_LEVEL: AVX512
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
with:
msbuild-architecture: x64
- name: "Test"
shell: bash
run: |
mkdir build
cd build
if [ "${{ matrix.simd }}" = "General" ]; then
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIBHDFSPP=OFF -DBUILD_TOOLS=OFF -DBUILD_JAVA=OFF
else
cmake .. -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Debug -DBUILD_LIBHDFSPP=OFF -DBUILD_TOOLS=OFF -DBUILD_JAVA=OFF -DBUILD_ENABLE_AVX512=ON
fi
cmake --build . --config Debug
ctest -C Debug --output-on-failure
simdUbuntu:
name: "SIMD programming using C++ intrinsic functions on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
cxx:
- clang++
env:
ORC_USER_SIMD_LEVEL: AVX512
steps:
- name: Checkout
uses: actions/checkout@v2
- name: "Test"
run: |
mkdir -p ~/.m2
mkdir build
cd build
cmake -DBUILD_JAVA=OFF -DBUILD_ENABLE_AVX512=ON ..
make package test-out
doc:
name: "Javadoc generation"
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Java 17
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 17
- name: "javadoc"
run: |
mkdir -p ~/.m2
cd java
./mvnw install -DskipTests
./mvnw javadoc:javadoc
formatting-check:
name: "C++ format check"
runs-on: ubuntu-20.04
strategy:
matrix:
path:
- 'c++'
- 'tools'
steps:
- uses: actions/checkout@v3
- name: Run clang-format style check for C++ code
uses: jidicula/clang-format-action@v4.9.0
with:
clang-format-version: '13'
check-path: ${{ matrix.path }}
license-check:
name: "License Check"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check license header
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
config: .github/.licenserc.yaml
macos-cpp-check:
name: "C++ Test on macOS"
strategy:
fail-fast: false
matrix:
version: [13, 14]
runs-on: macos-${{ matrix.version }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
brew update
brew install protobuf
- name: Test
run: |
CMAKE_PREFIX_PATH=$(brew --prefix protobuf)
mkdir -p build
cd build
cmake .. -DBUILD_JAVA=OFF -DPROTOBUF_HOME=${CMAKE_PREFIX_PATH}
make package test-out