Skip to content

added display name override #48

added display name override

added display name override #48

Workflow file for this run

name: Docker tests
on:
workflow_call:
inputs:
override_git_describe:
type: string
git_ref:
type: string
skip_tests:
type: string
workflow_dispatch:
inputs:
override_git_describe:
type: string
git_ref:
type: string
skip_tests:
type: string
repository_dispatch:
push:
branches-ignore:
- 'main'
- 'feature'
- 'v*.*-*'
- 'gh-readonly-queue/**'
paths:
- '.github/workflows/DockerTests.yml'
pull_request:
types: [opened, reopened, ready_for_review]
paths:
- '.github/workflows/DockerTests.yml'
concurrency:
group: docker-${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}-${{ inputs.override_git_describe }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
OVERRIDE_GIT_DESCRIBE: ${{ inputs.override_git_describe }}
jobs:
linux-tests:
name: Cross tests on Linux (${{ matrix.settings.architecture }})
runs-on: ${{ matrix.settings.host }}
continue-on-error: ${{ matrix.settings.allow-failure }}
strategy:
fail-fast: false
matrix:
settings:
# - host: ubuntu-22.04
# architecture: x86_64
# allow-failure: true
# - host: ubuntu-22.04-arm
# architecture: aarch64
# allow-failure: true
# - host: ubuntu-24.04
# architecture: ppc64le
# allow-failure: true
- host: ubuntu-24.04
architecture: riscv64
allow-failure: true
# - host: ubuntu-24.04
# architecture: s390x
# allow-failure: true
- host: ubuntu-24.04
architecture: loongarch64
allow-failure: true
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ inputs.git_ref }}
- uses: docker/setup-qemu-action@v3
if: ${{ !(matrix.settings.architecture == 'x86_64' || matrix.settings.architecture == 'aarch64') }}
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y g++ git make cmake ninja-build
- name: Setup cross-tools
if: ${{ !(matrix.settings.architecture == 'x86_64' || matrix.settings.architecture == 'aarch64') }}
run: |
ARCH="${{ matrix.settings.architecture }}"
TOOLCHAIN_TRIPLET="${ARCH}-linux-gnu"
LD_LIB_SUFFIX=""
case "${ARCH}" in
loongarch64)
LD_LIB_SUFFIX=64
LD_LIBRARIES=ld-linux-loongarch-lp64d.so.1
DUCKDB_PLATFORM=linux_loong64
;;
ppc64le)
LD_LIB_SUFFIX=64
LD_LIBRARIES=ld64.so.2
DUCKDB_PLATFORM=linux_ppc64le
TOOLCHAIN_TRIPLET="powerpc64le-linux-gnu"
;;
riscv64)
LD_LIBRARIES=ld-linux-riscv64-lp64d.so.1
DUCKDB_PLATFORM=linux_riscv64
;;
s390x)
LD_LIBRARIES=ld64.so.1
DUCKDB_PLATFORM=linux_s390x
;;
esac
sudo apt-get update
sudo apt-get install -y "g++-13-${TOOLCHAIN_TRIPLET}"
{
echo "CC=${TOOLCHAIN_TRIPLET}-gcc-13"
echo "CXX=${TOOLCHAIN_TRIPLET}-g++-13"
echo "LD_LIBRARY_PATH=/usr/${TOOLCHAIN_TRIPLET}/lib:/usr/${TOOLCHAIN_TRIPLET}/lib64"
if [ -n "${DUCKDB_PLATFORM:-}" ]; then
echo "DUCKDB_PLATFORM=${DUCKDB_PLATFORM}"
fi
} >> "$GITHUB_ENV"
sudo ln -s "/usr/${TOOLCHAIN_TRIPLET}/lib/${LD_LIBRARIES}" "/lib${LD_LIB_SUFFIX}/${LD_LIBRARIES}"
- name: Build
run: |
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;' &&
echo 'DOCKER TEST RESULT: SUCCESS' || echo 'DOCKER TEST RESULT: FAILURE'
linux-docker-tests:
name: Docker tests on ${{ matrix.settings.image }} (${{ matrix.settings.platform }})
runs-on: ${{ matrix.settings.host }}
continue-on-error: ${{ matrix.settings.allow-failure }}
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-24.04
image: alpine:latest
platform: linux/amd64
run: >-
apk add g++ git make cmake ninja python3 &&
cmake -Bbuild . &&
cmake --build build &&
cmake --install build &&
g++ -std=c++17 examples/embedded-c++/main.cpp -I/duckdb/third_party/fmt/include -lduckdb
allow-failure: true
- host: ubuntu-24.04
image: amazonlinux:latest
platform: linux/amd64
run: >-
yum install clang git make cmake ninja-build -y &&
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
- host: ubuntu-24.04
image: alpine:latest
platform: linux/amd64
run: >-
apk add g++ git make cmake ninja &&
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
- host: ubuntu-24.04-arm
image: alpine:latest
platform: linux/arm64
run: >-
apk add g++ git make cmake ninja &&
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
- host: ubuntu-24.04
image: alpine:latest
platform: linux/amd64
run: >-
apk add g++ git make cmake ninja python3 &&
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
- host: ubuntu-24.04
image: alpine:latest
platform: linux/amd64
run: >-
apk add g++ git make cmake ninja &&
CXX_STANDARD=23 GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
# Need CMake >= 3.19, GCC >= 11
# - host: ubuntu-24.04
# image: ubuntu:20.04
# platform: linux/amd64
# run: >-
# apt-get update && export DEBIAN_FRONTEND=noninteractive &&
# apt-get install g++ git make cmake ninja-build -y &&
# GEN=ninja make &&
# ./build/release/duckdb -c 'PRAGMA platform;'
# allow-failure: true
- host: ubuntu-24.04
image: ubuntu:devel
platform: linux/amd64
run: >-
apt-get update && export DEBIAN_FRONTEND=noninteractive &&
apt-get install g++ git make cmake ninja-build -y &&
GEN=ninja make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: true
# Unable to find image 'centos:latest' locally
# - host: ubuntu-24.04
# image: centos:latest
# platform: linux/amd64
# run: >-
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* &&
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* &&
# yum install git make cmake clang -y &&
# make &&
# ./build/release/duckdb -c 'PRAGMA platform;'
# allow-failure: false
- host: ubuntu-24.04
image: fedora:latest
platform: linux/amd64
run: >-
dnf install make cmake ninja-build gcc g++ -y &&
make &&
./build/release/duckdb -c 'PRAGMA platform;'
allow-failure: false
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ inputs.git_ref }}
- uses: docker/setup-qemu-action@v4
- name: Build
run: |
docker run --rm -i \
--platform "${{ matrix.settings.platform }}" \
--volume "${{ github.workspace }}:/duckdb" \
--workdir /duckdb \
"${{ matrix.settings.image }}" sh << 'EOF'
${{ matrix.settings.run }}
EOF