Skip to content

Merge into feature #9792

Merge into feature

Merge into feature #9792

Workflow file for this run

name: Main
on:
workflow_dispatch:
repository_dispatch:
push:
branches:
- '**'
- '!main'
- '!feature'
tags:
- '**'
paths-ignore:
- '**.md'
- 'tools/**'
- '!tools/odbc/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Main.yml'
pull_request:
types: [opened, reopened, ready_for_review]
paths-ignore:
- '**.md'
- 'tools/**'
- '!tools/odbc/**'
- '.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') }}
runs-on: ubuntu-20.04
env:
CC: gcc-10
CXX: g++-10
TREAT_WARNINGS_AS_ERRORS: 1
BUILD_VISUALIZER: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- 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: Test
shell: bash
run: |
echo "DUCKDB_INSTALL_LIB=$(find `pwd` -name "libduck*.so" | head -n 1)" >> $GITHUB_ENV
make unittestci
force-storage:
name: Force Storage
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-20.04
needs: linux-debug
env:
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_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- 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: 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:
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_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- 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: 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:
CC: gcc-10
CXX: g++-10
DISABLE_SANITIZER: 1
BUILD_JEMALLOC: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- 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: 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@v4
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@v4
with:
python-version: '3.7'
- 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 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