Skip to content

Merge pull request #12189 from gitccl/issue_12181 #1

Merge pull request #12189 from gitccl/issue_12181

Merge pull request #12189 from gitccl/issue_12181 #1

Workflow file for this run

name: Main
on:
workflow_dispatch:
repository_dispatch:
push:
branches:
- '**'
- '!main'
- '!feature'
paths-ignore:
- '**.md'
- 'tools/**'
- '!tools/odbc/**'
- '!tools/shell/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Main.yml'
pull_request:
types: [opened, reopened, ready_for_review]
paths-ignore:
- '**.md'
- 'tools/**'
- '!tools/odbc/**'
- '!tools/shell/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Main.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
linux-debug:
name: Linux Debug
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
outputs:
git_describe: ${{ steps.describe_step.outputs.git_describe }}
runs-on: ubuntu-20.04
env:
CC: gcc-10
CXX: g++-10
TREAT_WARNINGS_AS_ERRORS: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- id: describe_step
run: echo "git_describe=$(git describe --tags --long)" >> "$GITHUB_OUTPUT"
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make debug
- name: Output version info
shell: bash
run: ./build/debug/duckdb -c "PRAGMA version;"
- name: Set DUCKDB_INSTALL_LIB for ADBC tests
shell: bash
run: echo "DUCKDB_INSTALL_LIB=$(find `pwd` -name "libduck*.so" | head -n 1)" >> $GITHUB_ENV
- name: Test DUCKDB_INSTALL_LIB variable
run: echo $DUCKDB_INSTALL_LIB
- name: Test
shell: bash
run: make unittestci
force-storage:
name: Force Storage
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-20.04
needs: linux-debug
env:
OVERRIDE_GIT_DESCRIBE: ${{needs.linux-debug.outputs.git_describe}}
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_PARQUET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
RUN_SLOW_VERIFIERS: 1
steps:
- uses: actions/checkout@v3
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make reldebug
- name: Output version info
shell: bash
run: ./build/reldebug/duckdb -c "PRAGMA version;"
- name: Test
shell: bash
run: build/reldebug/test/unittest --force-storage
force-restart:
name: Force Restart
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-20.04
needs: linux-debug
env:
OVERRIDE_GIT_DESCRIBE: ${{needs.linux-debug.outputs.git_describe}}
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_PARQUET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
steps:
- uses: actions/checkout@v3
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make reldebug
- name: Output version info
shell: bash
run: ./build/reldebug/duckdb -c "PRAGMA version;"
- name: Test
shell: bash
run: build/reldebug/test/unittest --force-reload --force-storage
valgrind:
name: Valgrind
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-20.04
needs: linux-debug
env:
OVERRIDE_GIT_DESCRIBE: ${{needs.linux-debug.outputs.git_describe}}
CC: gcc-10
CXX: g++-10
DISABLE_SANITIZER: 1
BUILD_JEMALLOC: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
- name: Install
shell: bash
run: sudo apt-get update -y -qq && sudo apt-get install -y -qq ninja-build valgrind
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make debug
- name: Output version info
shell: bash
run: ./build/debug/duckdb -c "PRAGMA version;"
- name: Test
shell: bash
run: valgrind ./build/debug/test/unittest test/sql/tpch/tpch_sf001.test_slow
docs:
name: Website Docs
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-20.04
needs: linux-debug
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Clone Website
shell: bash
run: git clone https://github.com/duckdb/duckdb-web
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: Package
shell: bash
run: |
cd duckdb-web
python3 scripts/generate_docs.py ..
odbc:
name: ODBC
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-22.04
needs: linux-debug
env:
BUILD_ODBC: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Dependencies
shell: bash
run: |
sudo apt-get update -y -qq
sudo apt-get install -y -qq ninja-build unixodbc-dev
pip3 install pyodbc
- name: Install nanodbc
shell: bash
run: |
wget https://github.com/nanodbc/nanodbc/archive/refs/tags/v2.14.0.tar.gz -O nanodbc.tgz
mkdir nanodbc
tar xvf nanodbc.tgz -C nanodbc --strip-components=1
cd nanodbc
wget https://github.com/catchorg/Catch2/releases/download/v2.13.9/catch.hpp
cp catch.hpp test/catch/catch.hpp
sed -i -e "s/set(test_list/set(test_list odbc/" test/CMakeLists.txt
mkdir build
cd build
cmake -DNANODBC_DISABLE_TESTS=OFF ..
cmake --build .
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: DISABLE_SANITIZER=1 make debug
- name: Test Standard ODBC tests
shell: bash
run: build/debug/tools/odbc/test/test_odbc
- name: Test Connection ODBC tests
shell: bash
run: |
chmod +x tools/odbc/scripts/create_ini_file.sh
tools/odbc/scripts/create_ini_file.sh
build/debug/tools/odbc/test/test_connection_odbc
- name: Test nanodbc
shell: bash
run: ./tools/odbc/test/run_nanodbc_tests.sh
- name: Test isql
shell: bash
run: ./tools/odbc/test/run_isql_tests.sh
- name: Test R ODBC
shell: bash
run: R -f tools/odbc/test/rodbc.R
- name: Test Python ODBC
shell: bash
run: ./tools/odbc/test/run_pyodbc_tests.sh