Skip to content

Commit d15fd57

Browse files
committed
feat(ci): support duckdb sql plugin build
Signed-off-by: L-607 <i@1l.fit>
1 parent ef0cb4d commit d15fd57

3 files changed

Lines changed: 51 additions & 26 deletions

File tree

.github/dockerfile/Dockerfile.alpine

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
ARG GO_VERSION
1616
FROM golang:$GO_VERSION-alpine AS builder
1717

18-
RUN apk add gcc make git libc-dev zip curl jq bash binutils-gold pkgconfig zeromq-dev
19-
20-
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
21-
22-
RUN git config --global --add safe.directory '*'
18+
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
19+
&& apk update \
20+
&& apk add gcc make git libc-dev zip curl jq bash binutils-gold pkgconfig zeromq-dev duckdb-dev g++ \
21+
&& rm -rf /var/cache/apk/* \
22+
&& mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 \
23+
&& git config --global --add safe.directory '*'

.github/dockerfile/Dockerfile.debian

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,45 @@
1616
FROM debian:bullseye
1717

1818
ARG GO_VERSION
19+
ARG DUCKDB_VERSION=1.4.3
1920
ARG DEBIAN_FRONTEND="noninteractive"
2021

2122
RUN apt-get update -y \
22-
&& apt-get install -y make cmake wget git curl procps zip libucl-dev zlib1g-dev \
23-
pkg-config libczmq-dev build-essential debhelper jq zip
24-
25-
RUN case $(dpkg --print-architecture) in \
26-
arm|armhf|armv7) \
27-
ARCH=armv6l \
28-
;; \
29-
*) \
30-
ARCH=$(dpkg --print-architecture)\
31-
;; \
23+
&& apt-get install -y --no-install-recommends \
24+
ca-certificates make cmake wget git curl procps zip unzip libucl-dev zlib1g-dev \
25+
pkg-config libczmq-dev build-essential debhelper jq \
26+
&& rm -rf /var/lib/apt/lists/* \
27+
# Install DuckDB library
28+
&& case $(dpkg --print-architecture) in \
29+
amd64) DUCKDB_ARCH=amd64 ;; \
30+
arm64) DUCKDB_ARCH=arm64 ;; \
31+
*) echo "Unsupported architecture for DuckDB" && exit 1 ;; \
32+
esac \
33+
&& wget --no-verbose https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-${DUCKDB_ARCH}.zip -O /tmp/libduckdb.zip \
34+
&& unzip /tmp/libduckdb.zip -d /tmp/libduckdb \
35+
&& cp /tmp/libduckdb/libduckdb.so /usr/local/lib/ \
36+
&& cp /tmp/libduckdb/libduckdb_static.a /usr/local/lib/ \
37+
&& cp /tmp/libduckdb/duckdb.h /usr/local/include/ \
38+
&& cp /tmp/libduckdb/duckdb.hpp /usr/local/include/ \
39+
&& ldconfig \
40+
&& rm -rf /tmp/libduckdb.zip /tmp/libduckdb \
41+
# Install Go
42+
&& case $(dpkg --print-architecture) in \
43+
arm|armhf|armv7) ARCH=armv6l ;; \
44+
*) ARCH=$(dpkg --print-architecture) ;; \
3245
esac \
3346
&& wget --no-verbose https://golang.org/dl/go$GO_VERSION.linux-$ARCH.tar.gz \
34-
&& tar -C /usr/local -xzf go$GO_VERSION.linux-$ARCH.tar.gz
35-
36-
RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
37-
wget https://github.com/apple/foundationdb/releases/download/7.3.19/foundationdb-clients_7.3.19-1_amd64.deb \
38-
&& dpkg -i foundationdb-clients_7.3.19-1_amd64.deb; \
39-
fi
47+
&& tar -C /usr/local -xzf go$GO_VERSION.linux-$ARCH.tar.gz \
48+
&& rm go$GO_VERSION.linux-$ARCH.tar.gz \
49+
# Install FoundationDB client (amd64 only)
50+
&& if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
51+
wget --no-verbose https://github.com/apple/foundationdb/releases/download/7.3.19/foundationdb-clients_7.3.19-1_amd64.deb \
52+
&& dpkg -i foundationdb-clients_7.3.19-1_amd64.deb \
53+
&& rm foundationdb-clients_7.3.19-1_amd64.deb; \
54+
fi \
55+
# Install UPX
56+
&& wget --no-verbose https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-src.tar.xz -O - | tar -xJC /usr/local \
57+
&& cd /usr/local/upx-4.2.4-src && make all \
58+
&& ln -s /usr/local/upx-4.2.4-src/src/upx.out /usr/bin/upx
4059

4160
ENV PATH=$PATH:/usr/local/go/bin
42-
43-
RUN wget --no-verbose https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-src.tar.xz -O - | tar -xvJC /usr/local \
44-
&& cd /usr/local/upx-4.2.4-src && make all \
45-
&& ln -s /usr/local/upx-4.2.4-src/src/upx.out /usr/bin/upx

.github/workflows/run_test_case.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,16 @@ jobs:
3535
env:
3636
DEBIAN_FRONTEND: noninteractive
3737
run: |
38-
pip3 install pynng==0.8.1 && sudo apt-get update && sudo apt-get install ffmpeg libzmq3-dev -y
38+
pip3 install pynng==0.8.1
39+
sudo apt-get update && sudo apt-get install ffmpeg libzmq3-dev unzip -y
40+
wget --no-verbose https://github.com/duckdb/duckdb/releases/download/v1.4.3/libduckdb-linux-amd64.zip -O /tmp/libduckdb.zip
41+
unzip /tmp/libduckdb.zip -d /tmp/libduckdb
42+
sudo cp /tmp/libduckdb/libduckdb.so /usr/local/lib/
43+
sudo cp /tmp/libduckdb/libduckdb_static.a /usr/local/lib/
44+
sudo cp /tmp/libduckdb/duckdb.h /usr/local/include/
45+
sudo cp /tmp/libduckdb/duckdb.hpp /usr/local/include/
46+
sudo ldconfig
47+
rm -rf /tmp/libduckdb.zip /tmp/libduckdb
3948
- name: make install.sh executable
4049
run: chmod +x ./extensions/functions/onnx/install.sh
4150
- name: Build plugins

0 commit comments

Comments
 (0)