Skip to content
Merged
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
41 changes: 21 additions & 20 deletions .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ jobs:
- python-version: "3.13"
python-tag: "313"
architecture: "AMD64"
- python-version: "3.14"
python-tag: "314"
architecture: "AMD64"

uses: ./.github/workflows/build-windows-wheel.yml
with:
Expand All @@ -38,7 +41,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/build-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -73,6 +76,9 @@ jobs:
- python-version: "3.13"
python-tag: "313"
architecture: "AMD64"
- python-version: "3.14"
python-tag: "314"
architecture: "AMD64"
uses: ./.github/workflows/test-windows-wheel.yml
with:
python-version: ${{ matrix.python-version }}
Expand All @@ -82,7 +88,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -118,6 +124,9 @@ jobs:
- python-version: "3.13"
python-tag: "313"
architecture: "AMD64"
- python-version: "3.14"
python-tag: "314"
architecture: "AMD64"

uses: ./.github/workflows/test-windows-wheel.yml
with:
Expand All @@ -130,7 +139,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}
Expand All @@ -155,23 +164,18 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ${{ github.event_name == 'workflow_dispatch' && fromJSON(format('["{0}"]', inputs.python-version)) || fromJSON('["3.9", "3.10", "3.11", "3.12", "3.13"]') }}
env:
REQUIREMENTS_FILE: ${{ matrix.python-version == '3.9' && 'requirements.3.9.txt' || 'requirements.txt' }}

python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v10.3.0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build
pip install -r $REQUIREMENTS_FILE
run: uv sync --locked --no-install-project

- name: Generate meson files
run: |
Expand All @@ -181,22 +185,20 @@ jobs:

- name: Configure build with tests enabled
run: |
meson setup --buildtype=release -Dbuild_tests=true build/release
uv run --no-sync meson setup --buildtype=release -Dbuild_tests=true build/release

- name: Build project
run: |
cd build/release
ninja
uv run --no-sync ninja -C build/release

- name: Run C++ tests
run: |
cd build/release
./tests.x
run: ./scripts/run_cpp_tests.sh

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v10.3.0
- name: Generate meson files
run: |
python scripts/generate_meson.py ./src/dbzero/ core
Expand All @@ -209,8 +211,7 @@ jobs:
git config --global user.name "CI Builder"
rm -f .gitignore
git add . && git commit -m "Update meson files for build"
- run: python -m pip install build meson
- run: python -m build --sdist
- run: uv build --sdist
- uses: actions/upload-artifact@v4
with:
name: sdist
Expand Down Expand Up @@ -248,4 +249,4 @@ jobs:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
twine upload upload/*
twine upload upload/*
56 changes: 34 additions & 22 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,51 +11,71 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/build-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}

build-windows:
strategy:
fail-fast: false
matrix:
include:
- python-version: "3.12"
python-tag: "312"
- python-version: "3.14"
python-tag: "314"
uses: ./.github/workflows/build-windows-wheel.yml
with:
python-version: "3.12"
python-tag: "312"
python-version: ${{ matrix.python-version }}
python-tag: ${{ matrix.python-tag }}
architecture: "AMD64"

build-macos:
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.14"]
uses: ./.github/workflows/build-mac-wheel.yml
with:
python-version: "3.12"
python-version: ${{ matrix.python-version }}

test-wheels-linux:
needs: build-linux
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}

test-wheels-windows:
needs: build-windows
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.14"]
uses: ./.github/workflows/test-windows-wheel.yml
with:
python-version: "3.12"
python-version: ${{ matrix.python-version }}

test-wheels-macos:
needs: build-macos
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.14"]
uses: ./.github/workflows/test-mac-wheel.yml
with:
python-version: "3.12"
python-version: ${{ matrix.python-version }}

stress-test-linux:
needs: build-linux
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test-linux-wheel.yml
with:
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -102,23 +122,18 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ${{ github.event_name == 'workflow_dispatch' && fromJSON(format('["{0}"]', inputs.python-version)) || fromJSON('["3.9", "3.10", "3.11", "3.12", "3.13"]') }}
env:
REQUIREMENTS_FILE: ${{ matrix.python-version == '3.9' && 'requirements.3.9.txt' || 'requirements.txt' }}

python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v10.3.0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build
pip install -r $REQUIREMENTS_FILE
run: uv sync --locked --no-install-project

- name: Generate meson files
run: |
Expand All @@ -128,14 +143,11 @@ jobs:

- name: Configure build with tests enabled
run: |
meson setup --buildtype=release -Dbuild_tests=true build/release
uv run --no-sync meson setup --buildtype=release -Dbuild_tests=true build/release

- name: Build project
run: |
cd build/release
ninja
uv run --no-sync ninja -C build/release

- name: Run C++ tests
run: |
cd build/release
./tests.x
run: ./scripts/run_cpp_tests.sh
7 changes: 3 additions & 4 deletions .github/workflows/build-linux-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ inputs.python-version }}
- name: Set up build Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
python-version: '3.12'

- name: Generate meson files
run: |
Expand All @@ -69,14 +69,13 @@ jobs:
run: echo "py_tag=$(echo ${{ inputs.python-version }} | tr -d '.')" >> $GITHUB_OUTPUT

- name: Build manylinux wheels
uses: pypa/cibuildwheel@v2.21
uses: pypa/cibuildwheel@v3.4.1
env:
CIBW_BUILD: cp${{ steps.py-version.outputs.py_tag }}-manylinux_x86_64
CIBW_SKIP: pp* cp36-* *-musllinux*
CIBW_ARCHS_LINUX: x86_64
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_BUILD_VERBOSITY: 1
CIBW_PRERELEASE_PYTHONS: true

- uses: actions/upload-artifact@v4
with:
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/build-mac-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ jobs:
MACOSX_DEPLOYMENT_TARGET: '11.0'
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v10.3.0

- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
Expand All @@ -66,11 +67,8 @@ jobs:
rm -f .gitignore
git add . && git commit -m "Update meson files"

- name: Install build tools
run: pip install build

- name: Build wheel
run: python3 -m build ${{ inputs.build-args }}
run: uv build ${{ inputs.build-args }}
env:
CIBW_SKIP: pp* cp36-* *-musllinux*
CIBW_ARCHS_MACOS: x86_64 arm64
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/build-windows-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ on:
- '3.11'
- '3.12'
- '3.13'
- '3.14'
default: '3.12'
python-tag:
description: 'Python tag (e.g., 310, 311, 312)'
Expand All @@ -35,6 +36,7 @@ on:
- '311'
- '312'
- '313'
- '314'
default: '312'
architecture:
description: 'Build architecture'
Expand All @@ -51,10 +53,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ inputs.python-version }}
- name: Set up build Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
python-version: '3.12'

- uses: bus1/cabuild/action/msdevshell@v1
with:
Expand Down Expand Up @@ -86,13 +88,12 @@ jobs:
Copy-Item ".github\files\*.pyz" "$cachePath\"
shell: pwsh

- run: pip install cibuildwheel==2.23.0
- run: pip install cibuildwheel==3.4.1

- run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: cp${{ inputs.python-tag }}-*
CIBW_ARCHS_WINDOWS: ${{ inputs.architecture }}
CIBW_ENABLE: cpython-prerelease

- uses: actions/upload-artifact@v4
with:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/test-data-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- '3.11'
- '3.12'
- '3.13'
- '3.14'
default: '3.12'

jobs:
Expand All @@ -32,7 +33,7 @@ jobs:
uses: ./.github/workflows/build-windows-wheel.yml
with:
python-version: ${{ inputs.python-version }}
python-tag: ${{ inputs.python-version == '3.9' && '39' || inputs.python-version == '3.10' && '310' || inputs.python-version == '3.11' && '311' || inputs.python-version == '3.12' && '312' || '313' }}
python-tag: ${{ inputs.python-version == '3.9' && '39' || inputs.python-version == '3.10' && '310' || inputs.python-version == '3.11' && '311' || inputs.python-version == '3.12' && '312' || inputs.python-version == '3.13' && '313' || '314' }}
architecture: 'AMD64'

create-test-data:
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/test-linux-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,9 @@ jobs:
test-wheels-linux:
runs-on: ubuntu-latest
timeout-minutes: ${{ fromJSON(inputs.timeout-minutes) }}
env:
REQUIREMENTS_FILE: ${{ inputs.python-version == '3.9' && 'requirements.3.9.txt' || 'requirements.txt' }}
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v10.3.0

- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
Expand All @@ -70,10 +69,9 @@ jobs:

- name: Install wheel and dependencies
run: |
pip install pytest
pip install -r $REQUIREMENTS_FILE
pip install ./wheels/*.whl
uv sync --locked --no-install-project
uv pip install --python .venv/bin/python ./wheels/*.whl

- name: Run tests
run: |
${{ inputs.ld-preload }} python -m pytest ${{ inputs.pytest-markers }} -c pytest.ini --capture=no -vv
${{ inputs.ld-preload }} uv run --no-sync python -m pytest ${{ inputs.pytest-markers }} -c pytest.ini --capture=no -vv
Loading
Loading