Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
ad4365c
build static
yangxk1 Dec 22, 2025
1a9d17d
try to improve cmakelist
yangxk1 Dec 29, 2025
8c91527
test build from arrow source
yangxk1 Jan 7, 2026
6cef3b1
Asynchronous build
yangxk1 Jan 7, 2026
d67b590
update
yangxk1 Jan 7, 2026
edbda66
fix dependencies
yangxk1 Jan 7, 2026
cc4da7a
fix link arrow
yangxk1 Jan 7, 2026
80fad16
upgrade arrow source version
yangxk1 Jan 7, 2026
b00e305
try to fix build from source
yangxk1 Jan 7, 2026
4f40bce
use release build type
yangxk1 Jan 7, 2026
d61c179
fix orc in macos
yangxk1 Jan 7, 2026
d4d6146
pin cmake version to fix macos build from source
yangxk1 Jan 7, 2026
e89a3c4
pin cmake version to fix macos build from source
yangxk1 Jan 7, 2026
e96d44e
try build test
yangxk1 Jan 7, 2026
b65e289
run exmaple
yangxk1 Jan 7, 2026
36b7b79
try to fix
yangxk1 Jan 7, 2026
16702f3
try to fix
yangxk1 Jan 7, 2026
dccb7dc
update
yangxk1 Jan 8, 2026
1fd9929
Merge remote-tracking branch 'apache/main' into 810-improve-cmakelist…
yangxk1 Jan 8, 2026
c7e9711
set up cmake in macos
yangxk1 Jan 8, 2026
8ab7522
try install cmake in macos
yangxk1 Jan 8, 2026
aea1ae2
fix add twice case
yangxk1 Jan 9, 2026
07aa864
move build from arrow source to nightly workflow
yangxk1 Jan 9, 2026
89c7e5e
try nightly workflow
yangxk1 Jan 9, 2026
d6d8c64
try to fix ccache
yangxk1 Jan 12, 2026
0c69253
fix
yangxk1 Jan 12, 2026
c6b9f85
print message
yangxk1 Jan 12, 2026
cebc766
try to fix
yangxk1 Jan 12, 2026
5e7a50b
Revert "try to fix"
yangxk1 Jan 12, 2026
bb5f8ac
test
yangxk1 Jan 12, 2026
5259a51
try arrow 15
yangxk1 Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 94 additions & 2 deletions .github/workflows/ci-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,13 @@

name: GraphAr C++ CI Nightly

on:
on:
pull_request:
branches:
- main
paths:
- 'cpp/**'
- '.github/workflows/ci.yml'
workflow_dispatch:
schedule:
# The notifications for scheduled workflows are sent to the user who
Expand All @@ -26,7 +32,7 @@ on:
- cron: '00 19 * * *'
jobs:
GraphAr-ubuntu-arrow-from-source:
if: ${{ github.ref == 'refs/heads/main' && github.repository == 'apache/incubator-graphar' }}
# if: ${{ github.ref == 'refs/heads/main' && github.repository == 'apache/incubator-graphar' }}
runs-on: ubuntu-latest
env:
GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/
Expand Down Expand Up @@ -71,6 +77,92 @@ jobs:
make graphar-ccache-stats
popd

- name: Test-debug
run: |
pushd build-debug
./test_builder
ctest --output-on-failure
popd


- name: CMake-release
run: |
mkdir build-release
pushd build-release
cmake ../cpp -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_ARROW_FROM_SOURCE=ON
popd

- name: Build GraphAr-release
run: |
pushd build-release
make -j$(nproc)
make graphar-ccache-stats
popd

- name: Test-release
run: |
pushd build-release
ctest --output-on-failure
popd

GraphAr-macos-arrow-from-source:
# if: ${{ github.ref == 'refs/heads/main' && github.repository == 'apache/incubator-graphar' }}
runs-on: macos-latest
env:
GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/
steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Cache for ccache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ${{ matrix.os }}-build-ccache-${{ hashFiles('**/git-modules.txt') }}
restore-keys: |
${{ matrix.os }}-build-ccache-

- name: Setup CMake 3.29.6
shell: bash
run: |
set -euo pipefail
CMAKE_VERSION="3.29.6"
CMAKE_TARBALL="cmake-${CMAKE_VERSION}-macos-universal.tar.gz"
CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_TARBALL}"

DEST_DIR="${RUNNER_TEMP}/cmake-${CMAKE_VERSION}"
rm -rf "${DEST_DIR}"
mkdir -p "${DEST_DIR}"

curl -fsSL "${CMAKE_URL}" | tar -xz -C "${DEST_DIR}"

# Prepend to PATH for subsequent steps in this job
echo "${DEST_DIR}/cmake-${CMAKE_VERSION}-macos-universal/CMake.app/Contents/bin" >> "${GITHUB_PATH}"

cmake --version


- name: Install dependencies
run: |
brew install boost
brew install ccache
brew install catch2

- name: CMake-debug
run: |
mkdir build-debug
pushd build-debug
cmake ../cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_ARROW_FROM_SOURCE=ON
popd

- name: Build GraphAr-debug
run: |
pushd build-debug
make -j$(nproc)
make graphar-ccache-stats
popd

- name: Test-debug
run: |
pushd build-debug
Expand Down
93 changes: 72 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ on:
# but only for the main branch
push:
branches:
- main
- "main"
paths:
- 'cpp/**'
- '.github/workflows/ci.yml'
Expand Down Expand Up @@ -188,6 +188,48 @@ jobs:
./arrow_chunk_reader_benchmark
./label_filter_benchmark

ubuntu-static:
# TODO use ubuntu-latest
name: Ubuntu 22.04 C++ (static)
runs-on: ubuntu-22.04
if: ${{ !contains(github.event.pull_request.title, 'WIP') && !github.event.pull_request.draft }}
env:
GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/
steps:
- uses: actions/checkout@v3
with:
submodules: true

- name: Install dependencies
run: |

# install the latest arrow deb to test arrow
wget -c https://apache.jfrog.io/artifactory/arrow/"$(lsb_release --id --short | tr 'A-Z' 'a-z')"/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb \
-P /tmp/
sudo apt-get install -y /tmp/apache-arrow-apt-source-latest-"$(lsb_release --codename --short)".deb
sudo apt-get update -y
sudo apt install -y libarrow-dev=17.0.0-1 \
libarrow-dataset-dev=17.0.0-1 \
libarrow-acero-dev=17.0.0-1 \
libparquet-dev=17.0.0-1
sudo apt-get install -y libboost-graph-dev ccache libcurl4-openssl-dev

# install benchmark
git clone --branch v1.8.3 https://github.com/google/benchmark.git --depth 1
pushd benchmark
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBENCHMARK_ENABLE_TESTING=OFF -DBENCHMARK_ENABLE_GTEST_TESTS=OFF .
sudo make install
popd

# install Catch2 v3
git clone --branch v3.6.0 https://github.com/catchorg/Catch2.git --depth 1
pushd Catch2
cmake -Bbuild -H. -DBUILD_TESTING=OFF
sudo cmake --build build/ --target install
popd

git clone https://github.com/apache/incubator-graphar-testing.git $GAR_TEST_DATA --depth 1

- name: Use Static Arrow
working-directory: "cpp"
run: |
Expand All @@ -196,9 +238,13 @@ jobs:
cmake .. -DUSE_STATIC_ARROW=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON
make -j$(nproc)
export ASAN_OPTIONS=detect_leaks=0
ctest --output-on-failure
popd

- name: Test
working-directory: "cpp/build-static"
run: |
ctest --output-on-failure

- name: Upload libgraphar.a artifact
if: github.event_name == 'push'
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -240,39 +286,44 @@ jobs:
export ASAN_OPTIONS=detect_leaks=0
ctest --output-on-failure

- name: test release build type
working-directory: "cpp"
run: |
mkdir build-release
pushd build-release
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON
make -j$(nproc)
export ASAN_OPTIONS=detect_leaks=0
ctest --output-on-failure
popd
macos-static:
name: macos latest C++ (static)
runs-on: macos-latest
if: ${{ !contains(github.event.pull_request.title, 'WIP') && github.event.pull_request.draft == false }}
env:
GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/
strategy:
fail-fast: false

- name: Benchmark-release
working-directory: "cpp/build-release"
steps:
- uses: actions/checkout@v3
with:
submodules: true

- name: Install dependencies
run: |
./graph_info_benchmark
./arrow_chunk_reader_benchmark
./label_filter_benchmark
brew bundle --file=cpp/Brewfile
git clone https://github.com/apache/incubator-graphar-testing.git $GAR_TEST_DATA --depth 1

- name: Use Static Arrow
working-directory: "cpp"
run: |
mkdir build-static
pushd build-static
cmake .. -DUSE_STATIC_ARROW=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON
cmake .. -DUSE_STATIC_ARROW=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON
make -j$(nproc)
export ASAN_OPTIONS=detect_leaks=0
export ASAN_OPTIONS=detect_container_overflow=0
ctest --output-on-failure
popd

- name: Test
working-directory: "cpp/build-static"
run: |
ctest --output-on-failure

- name: Upload libgraphar.a artifact
if: github.event_name == 'push'
uses: actions/upload-artifact@v4
with:
name: macos-${{ matrix.macos-version }}-libgraphar.a
path: cpp/build-static/libgraphar.a
name: macos-libgraphar.a
path: cpp/build-static/libgraphar.a
Loading
Loading