Skip to content

Support for ANY SHORTEST #359

Support for ANY SHORTEST

Support for ANY SHORTEST #359

Workflow file for this run

name: Main
on:
workflow_dispatch:
repository_dispatch:
push:
branches:
- '**'
- '!master'
- '!feature'
tags:
- '**'
paths-ignore:
- '**.md'
- 'tools/**'
- '.github/workflows/**'
- '!.github/workflows/Main.yml'
- '.github/config/uncovered_files.csv'
pull_request:
paths-ignore:
- '**.md'
- 'tools/**'
- '.github/workflows/**'
- '!.github/workflows/Main.yml'
- '.github/config/uncovered_files.csv'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/master' || github.sha }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
linux-debug:
name: Linux Debug
runs-on: ubuntu-20.04
env:
CC: gcc-10
CXX: g++-10
TREAT_WARNINGS_AS_ERRORS: 1
BUILD_VISUALIZER: 1
BUILD_INET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_ICU: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_PARQUET: 1
BUILD_SUBSTRAIT_EXTENSION: 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
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/master' || 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
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/master' || 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
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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make reldebug
- name: Test
shell: bash
run: build/reldebug/test/unittest --force-reload --force-storage
no-string-inline:
name: No String Inline / Destroy Unpinned Blocks
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
DISABLE_STRING_INLINE: 1
DESTROY_UNPINNED_BLOCKS: 1
ALTERNATIVE_VERIFY: 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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make debug
- name: Test
shell: bash
run: build/debug/test/unittest
force-blocking-sink-source:
name: Forcing async Sinks/Sources
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
FORCE_ASYNC_SINK_SOURCE: 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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make relassert
- name: Test
shell: bash
run: build/relassert/test/unittest
storage-initialization:
name: Storage Initialization Verification
needs: linux-debug
runs-on: ubuntu-20.04
env:
CC: gcc-10
CXX: g++-10
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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make debug
- name: Test
shell: bash
run: python3 scripts/test_zero_initialize.py
threadsan:
name: Thread Sanitizer
runs-on: ubuntu-20.04
needs: linux-debug
env:
CC: gcc-10
CXX: g++-10
GEN: ninja
BUILD_ICU: 1
BUILD_INET: 1
BUILD_TPCH: 1
BUILD_TPCDS: 1
BUILD_FTS: 1
BUILD_VISUALIZER: 1
BUILD_JSON: 1
BUILD_EXCEL: 1
BUILD_JEMALLOC: 1
TSAN_OPTIONS: suppressions=.sanitizer-thread-suppressions.txt
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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: THREADSAN=1 make reldebug
- name: Test
shell: bash
run: |
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[intraquery]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[interquery]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest "[detailed_profiler]"
python3 scripts/run_tests_one_by_one.py build/reldebug/test/unittest test/sql/tpch/tpch_sf01.test_slow
valgrind:
name: Valgrind
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/master' || 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
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 ..
sqllogic:
name: Sqllogic tests
runs-on: ubuntu-20.04
needs: linux-debug
env:
CC: gcc-10
CXX: g++-10
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/master' || github.repository != 'duckdb/duckdb' }}
# Build is implied by 'make sqlite' that will invoke implicitly 'make release' (we make it explicit)
- name: Build
shell: bash
run: make release
- name: Test
shell: bash
run: make sqlite
expanded:
name: Expanded
runs-on: ubuntu-20.04
needs: linux-debug
env:
CC: gcc-10
CXX: g++-10
TREAT_WARNINGS_AS_ERRORS: 1
DISABLE_UNITY: 1
DISABLE_PARQUET: 1
GEN: ninja
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/swap_space
- 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/master' || github.repository != 'duckdb/duckdb' }}
- name: Build
shell: bash
run: make debug
odbc:
name: ODBC
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: Install psqlodbc
shell: bash
run: |
git clone https://github.com/Mytherin/psqlodbc.git
(cd psqlodbc && git checkout edd9890a5046a2006f210849abb97c6a6589a45c && make debug)
- name: Setup Ccache
uses: hendrikmuhs/ccache-action@main
with:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/master' || 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 psqlodbc
shell: bash
run: ./tools/odbc/test/run_psqlodbc_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