Skip to content

feat: metrics reporting for scan and commit #13

feat: metrics reporting for scan and commit

feat: metrics reporting for scan and commit #13

# 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: SQL Catalog Tests
on:
push:
branches:
- '**'
- '!dependabot/**'
tags:
- '**'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
env:
ICEBERG_HOME: /tmp/iceberg
jobs:
sql-catalog:
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
name: SQL Catalog (${{ matrix.title }})
runs-on: ${{ matrix.runs-on }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- title: AMD64 Ubuntu 24.04
runs-on: ubuntu-24.04
CC: gcc-14
CXX: g++-14
cmake_build_type: Debug
cmake_extra_args: ""
- title: AArch64 macOS 26
runs-on: macos-26
cmake_build_type: Debug
cmake_extra_args: ""
- title: AMD64 Windows 2025
runs-on: windows-2025
cmake_build_type: Release
cmake_extra_args: -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
steps:
- name: Checkout iceberg-cpp
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up MSVC Developer Command Prompt
if: ${{ startsWith(matrix.runs-on, 'windows') }}
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: x64
- name: Install dependencies on Ubuntu
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
shell: bash
run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
- name: Set Ubuntu Compilers
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
run: |
echo "CC=${{ matrix.CC }}" >> $GITHUB_ENV
echo "CXX=${{ matrix.CXX }}" >> $GITHUB_ENV
- name: Install dependencies on macOS
if: ${{ startsWith(matrix.runs-on, 'macos') }}
shell: bash
run: |
brew install fmt
echo "CMAKE_PREFIX_PATH=$(brew --prefix fmt):${CMAKE_PREFIX_PATH:-}" >> "${GITHUB_ENV}"
- name: Install dependencies on Windows
if: ${{ startsWith(matrix.runs-on, 'windows') }}
shell: pwsh
run: |
vcpkg install zlib:x64-windows nlohmann-json:x64-windows nanoarrow:x64-windows roaring:x64-windows sqlite3:x64-windows
- name: Configure Iceberg
shell: bash
run: |
cmake -S . -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX="${ICEBERG_HOME}" \
-DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \
-DICEBERG_BUILD_STATIC=ON \
-DICEBERG_BUILD_SHARED=ON \
-DICEBERG_BUILD_REST=OFF \
-DICEBERG_BUILD_SQL_CATALOG=ON \
-DICEBERG_SQL_SQLITE=ON \
${{ matrix.cmake_extra_args }}
- name: Build SQL catalog tests
shell: bash
run: cmake --build build --target sql_catalog_test
- name: Run SQL catalog tests
shell: bash
run: ctest --test-dir build -R '^sql_catalog_test$' --output-on-failure -C ${{ matrix.cmake_build_type }}