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 9fb06be1e ci: add a nightly build job for musl linux (alpine) (#3434)
9fb06be1e is described below
commit 9fb06be1e2c2d62ff71d39d65e132d51b321b03c
Author: eitsupi <[email protected]>
AuthorDate: Sun Dec 21 16:40:19 2025 +0900
ci: add a nightly build job for musl linux (alpine) (#3434)
Close #3107
I've prioritized testing the driver manager and added a minimal build,
which we hope will catch musl-specific bugs like #3105.
---
.github/workflows/nightly-verify.yml | 6 ++++++
ci/docker/cpp-musl.alpine.dockerfile | 30 ++++++++++++++++++++++++++++++
compose.yaml | 17 +++++++++++++++++
3 files changed, 53 insertions(+)
diff --git a/.github/workflows/nightly-verify.yml
b/.github/workflows/nightly-verify.yml
index efca3c5e5..38915a54e 100644
--- a/.github/workflows/nightly-verify.yml
+++ b/.github/workflows/nightly-verify.yml
@@ -25,6 +25,7 @@ on:
- ".github/workflows/nightly-verify.yml"
- "ci/docker/cpp-clang-latest.dockerfile"
- "ci/docker/cpp-gcc-latest.dockerfile"
+ - "ci/docker/cpp-musl.alpine.dockerfile"
- "dev/release/verify-release-candidate.sh"
- "dev/release/verify-release-candidate.ps1"
schedule:
@@ -230,6 +231,11 @@ jobs:
pushd arrow-adbc
docker compose run --rm cpp-static-test
+ - name: cpp-musl
+ run: |
+ pushd arrow-adbc
+ docker compose run --rm cpp-musl
+
- name: python-debug
run: |
# Need to set this or ASAN inside the container gets stuck
diff --git a/ci/docker/cpp-musl.alpine.dockerfile
b/ci/docker/cpp-musl.alpine.dockerfile
new file mode 100644
index 000000000..58a80341f
--- /dev/null
+++ b/ci/docker/cpp-musl.alpine.dockerfile
@@ -0,0 +1,30 @@
+# 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.
+
+FROM alpine:3
+
+RUN apk add --no-cache \
+ build-base \
+ cmake \
+ ninja \
+ bash \
+ git \
+ ca-certificates \
+ musl-dev \
+ libstdc++ \
+ linux-headers \
+ sqlite-dev
diff --git a/compose.yaml b/compose.yaml
index 1f8388b25..92e9af5ab 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -73,6 +73,23 @@ services:
command: "bash -c 'git config --global --add safe.directory /adbc &&
/adbc/ci/scripts/cpp_static_test.sh /adbc /adbc/build/static-test/build
/adbc/build/static-test/local'"
+ ############################### C/C++: musl (Alpine)
##########################
+
+ cpp-musl:
+ image: ${REPO}:${ARCH}-cpp-musl-adbc
+ build:
+ context: .
+ dockerfile: ci/docker/cpp-musl.alpine.dockerfile
+ volumes:
+ - .:/adbc:delegated
+ environment:
+ ADBC_CMAKE_ARGS: "-DADBC_BUILD_WARNING_LEVEL=CHECKIN -DSIZEOF_TIME_T=8"
+ ADBC_USE_ASAN: "0"
+ ADBC_USE_UBSAN: "0"
+ command: "bash -c 'git config --global --add safe.directory /adbc && \
+ env ADBC_USE_ASAN=0 ADBC_USE_UBSAN=0 BUILD_ALL=0 BUILD_DRIVER_MANAGER=1
BUILD_DRIVER_POSTGRESQL=0 BUILD_DRIVER_SQLITE=1 BUILD_DRIVER_FLIGHTSQL=0
BUILD_DRIVER_SNOWFLAKE=0 BUILD_DRIVER_BIGQUERY=0 /adbc/ci/scripts/cpp_build.sh
/adbc /adbc/build/musl && \
+ env ADBC_USE_ASAN=0 ADBC_USE_UBSAN=0 BUILD_ALL=0 BUILD_DRIVER_MANAGER=0
BUILD_DRIVER_POSTGRESQL=0 BUILD_DRIVER_SQLITE=1 BUILD_DRIVER_FLIGHTSQL=0
BUILD_DRIVER_SNOWFLAKE=0 BUILD_DRIVER_BIGQUERY=0 /adbc/ci/scripts/cpp_test.sh
/adbc/build/musl'"
+
############################ Documentation
###################################
docs: