Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 36 additions & 34 deletions .github/workflows/DockerTests.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,39 @@
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*.*-*'
paths-ignore:
- '**'
- '!.github/workflows/DockerTests.yml'
- '!scripts/test_docker_images.sh'
pull_request:
types: [opened, reopened, ready_for_review]
paths-ignore:
- '**'
- '!.github/workflows/DockerTests.yml'
- '!scripts/test_docker_images.sh'

on: pull_request
# 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*.*-*'
# paths-ignore:
# - '**'
# - '!.github/workflows/DockerTests.yml'
# - '!scripts/test_docker_images.sh'
# pull_request:
# types: [opened, reopened, ready_for_review]
# paths-ignore:
# - '**'
# - '!.github/workflows/DockerTests.yml'
# - '!scripts/test_docker_images.sh'

concurrency:
group: docker-${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}-${{ inputs.override_git_describe }}
Expand All @@ -44,7 +46,7 @@ env:
jobs:
linux-x64-docker:
name: Docker tests on Linux (x64)
runs-on: ubuntu-latest
runs-on: tenki-standard-autoscale

steps:
- uses: actions/checkout@v4
Expand Down
83 changes: 42 additions & 41 deletions .github/workflows/Regression.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Regression

on:
workflow_call:
inputs:
Expand All @@ -23,17 +24,17 @@ on:
- '.github/workflows/**'
- '!.github/workflows/Regression.yml'
- '.github/config/out_of_tree_extensions.cmake'
merge_group:
pull_request:
types: [opened, reopened, ready_for_review, converted_to_draft]
paths-ignore:
- '**.md'
- 'test/configs/**'
- 'tools/**'
- '.github/patches/duckdb-wasm/**'
- '.github/workflows/**'
- '!.github/workflows/Regression.yml'
- '.github/config/out_of_tree_extensions.cmake'
# merge_group:
# pull_request:
# types: [opened, reopened, ready_for_review, converted_to_draft]
# paths-ignore:
# - '**.md'
# - 'test/configs/**'
# - 'tools/**'
# - '.github/patches/duckdb-wasm/**'
# - '.github/workflows/**'
# - '!.github/workflows/Regression.yml'
# - '.github/config/out_of_tree_extensions.cmake'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
Expand All @@ -47,16 +48,16 @@ env:
jobs:
check-draft:
# We run all other jobs on PRs only if they are not draft PR
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
runs-on: ubuntu-24.04
# if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Preliminary checks on CI
run: echo "Event name is ${{ github.event_name }}"

regression-test-benchmark-runner:
name: Regression Tests
needs: check-draft
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
env:
CC: gcc-10
CXX: g++-10
Expand Down Expand Up @@ -84,18 +85,18 @@ jobs:
key: ${{ github.job }}
save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb' }}

- name: Checkout Private Regression
if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
uses: actions/checkout@v4
with:
repository: duckdblabs/fivetran_regression
ref: main
token: ${{ secrets.DUCKDBLABS_BOT_TOKEN }}
path: benchmark/fivetran
# - name: Checkout Private Regression
# # # if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
# uses: actions/checkout@v4
# with:
# repository: duckdblabs/fivetran_regression
# ref: main
# # token: ${{ secrets.DUCKDBLABS_BOT_TOKEN }}
# path: benchmark/fivetran

# For PRs we compare against the base branch
- name: Build Current and Base Branch
if: ${{ !(github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main') }}
# # if: ${{ !(github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main') }}
shell: bash
run: |
make
Expand All @@ -106,7 +107,7 @@ jobs:

# For NightlyTest we fetch the last commit hash that ran Regression on main
- name: Build Main and Previous Successful Regression Hash
if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
# if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
shell: bash
run: |
make
Expand All @@ -127,61 +128,61 @@ jobs:
cp -r benchmark duckdb/

- name: Regression Test Fivetran
if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
# # if: ${{ github.repository == 'duckdb/duckdb' && github.ref == 'refs/heads/main' }}
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks benchmark/fivetran/benchmark_list.csv --verbose --threads 2

- name: Regression Test Micro
if: always()
# # if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/micro.csv --verbose --threads 2

- name: Regression Test Ingestion Perf
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/ingestion.csv --verbose --threads 2

- name: Regression Test TPCH
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/tpch.csv --verbose --threads 2

- name: Regression Test TPCH-PARQUET
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/tpch_parquet.csv --verbose --threads 2

- name: Regression Test TPCDS
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/tpcds.csv --verbose --threads 2

- name: Regression Test H2OAI
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/h2oai.csv --verbose --threads 2

- name: Regression Test IMDB
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/imdb.csv --verbose --threads 2

- name: Regression Test CSV
if: always()
# if: always()
shell: bash
run: |
python scripts/regression/test_runner.py --old duckdb/build/release/benchmark/benchmark_runner --new build/release/benchmark/benchmark_runner --benchmarks .github/regression/csv.csv --verbose --threads 2

- name: Regression Test RealNest
if: always()
# if: always()
shell: bash
run: |
mkdir -p duckdb_benchmark_data
Expand All @@ -194,7 +195,7 @@ jobs:
regression-test-storage:
name: Storage Size Regression Test
needs: check-draft
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
env:
CC: gcc-10
CXX: g++-10
Expand Down Expand Up @@ -245,7 +246,7 @@ jobs:

- name: Regression Compatibility Test (testing bidirectional compatibility)
shell: bash
if: env.storage_changed == 'false'
# if: env.storage_changed == 'false'
run: |
# Regenerate test/sql/storage_version.db with newer version -> read with older version
python3 scripts/generate_storage_version.py
Expand All @@ -258,7 +259,7 @@ jobs:

- name: Regression Compatibility Test (testing storage version has been bumped)
shell: bash
if: env.storage_changed == 'true'
# if: env.storage_changed == 'true'
run: |
python3 scripts/generate_storage_version.py
cd duckdb
Expand All @@ -275,7 +276,7 @@ jobs:
regression-test-binary-size:
name: Regression test binary size
needs: check-draft
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
env:
CC: gcc-10
CXX: g++-10
Expand Down Expand Up @@ -318,7 +319,7 @@ jobs:
regression-test-plan-cost:
name: Regression Test Join Order Plan Cost
needs: check-draft
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
env:
CC: gcc-10
CXX: g++-10
Expand Down Expand Up @@ -359,13 +360,13 @@ jobs:
cp -r benchmark duckdb/

- name: Regression Test IMDB
if: always()
# if: always()
shell: bash
run: |
python scripts/plan_cost_runner.py --old duckdb/build/release/duckdb --new build/release/duckdb --dir=benchmark/imdb_plan_cost

- name: Regression Test TPCH
if: always()
# if: always()
shell: bash
run: |
python scripts/plan_cost_runner.py --old duckdb/build/release/duckdb --new build/release/duckdb --dir=benchmark/tpch_plan_cost
Expand Down