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)