This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new c6b9489b ci: test C++ recipes (#922)
c6b9489b is described below

commit c6b9489b4a61ca701f81dc94bfaf2062aae3287f
Author: David Li <[email protected]>
AuthorDate: Thu Jul 20 13:16:44 2023 -0400

    ci: test C++ recipes (#922)
    
    Fixes #795.
---
 .github/workflows/native-unix.yml     |  7 +++--
 ci/scripts/cpp_recipe.sh              | 52 +++++++++++++++++++++++++++++++++++
 docs/source/cpp/recipe/CMakeLists.txt |  7 +++--
 3 files changed, 62 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/native-unix.yml 
b/.github/workflows/native-unix.yml
index 5ef7238a..dffdab19 100644
--- a/.github/workflows/native-unix.yml
+++ b/.github/workflows/native-unix.yml
@@ -572,8 +572,11 @@ jobs:
         shell: bash -l {0}
         run: |
           ./ci/scripts/docs_build.sh "$(pwd)"
-      # Docs requires Python packages since it runs doctests
-      - name: Test Docs
+      - name: Test Recipes (C++)
+        shell: bash -l {0}
+        run: |
+          ./ci/scripts/cpp_recipe.sh $(pwd) ~/local build/recipe
+      - name: Test Recipes (Python)
         shell: bash -l {0}
         env:
           ADBC_POSTGRESQL_TEST_URI: 
"postgres://localhost:5432/postgres?user=postgres&password=password"
diff --git a/ci/scripts/cpp_recipe.sh b/ci/scripts/cpp_recipe.sh
new file mode 100755
index 00000000..2d97f94f
--- /dev/null
+++ b/ci/scripts/cpp_recipe.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+# 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.
+
+# Build and test the C++ recipes in the documentation.
+
+set -e
+
+: ${ADBC_CMAKE_ARGS:=""}
+: ${CMAKE_BUILD_TYPE:=Debug}
+
+main() {
+    local -r source_dir="${1}"
+    local -r install_dir="${2}"
+    local -r build_dir="${3}"
+
+    export DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${install_dir}/lib"
+    export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${install_dir}/lib"
+    export GODEBUG=cgocheck=2
+
+    mkdir -p "${build_dir}"
+    pushd "${build_dir}"
+
+    set -x
+    cmake "${source_dir}/docs/source/cpp/recipe/" \
+          ${ADBC_CMAKE_ARGS} \
+          -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
+          -DCMAKE_INSTALL_LIBDIR=lib \
+          -DCMAKE_PREFIX_PATH="${install_dir}"
+    set +x
+
+    cmake --build . -j
+    ctest \
+        --output-on-failure \
+        --no-tests=error
+}
+
+main "$@"
diff --git a/docs/source/cpp/recipe/CMakeLists.txt 
b/docs/source/cpp/recipe/CMakeLists.txt
index 80899d16..5cc1492b 100644
--- a/docs/source/cpp/recipe/CMakeLists.txt
+++ b/docs/source/cpp/recipe/CMakeLists.txt
@@ -16,19 +16,21 @@
 # under the License.
 
 cmake_minimum_required(VERSION 3.18)
-include(FetchContent)
 
 project(adbc_cookbook_recipes
         VERSION "1.0.0"
         LANGUAGES CXX)
 
+include(CTest)
+include(FetchContent)
+
 set(CMAKE_CXX_STANDARD 17)
 
 find_package(AdbcDriverManager REQUIRED)
 
 fetchcontent_declare(nanoarrow
                      GIT_REPOSITORY 
https://github.com/apache/arrow-nanoarrow.git
-                     GIT_TAG 75dc80774a2f8c2c66b50fccf5d3e5fa13fab796
+                     GIT_TAG apache-arrow-nanoarrow-0.2.0
                      GIT_SHALLOW TRUE)
 fetchcontent_makeavailable(nanoarrow)
 
@@ -36,3 +38,4 @@ add_executable(quickstart quickstart.cc)
 target_include_directories(quickstart SYSTEM PRIVATE 
${nanoarrow_SOURCE_DIR}/dist)
 target_link_libraries(quickstart PRIVATE 
AdbcDriverManager::adbc_driver_manager_shared
                                          nanoarrow)
+add_test(NAME quickstart COMMAND quickstart)

Reply via email to