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
8 changes: 1 addition & 7 deletions .github/workflows/_build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@ name: Build Linux Wheels

on:
workflow_call:
inputs:
python-versions:
description: 'Python versions to build for'
required: false
type: string
default: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]'

jobs:
build-linux:
Expand Down Expand Up @@ -42,7 +36,7 @@ jobs:
- name: Build wheels
uses: pypa/cibuildwheel@v2.22.0
env:
# Build for specified Python versions
# Build for all Python versions
CIBW_BUILD: cp38-manylinux_x86_64 cp39-manylinux_x86_64 cp310-manylinux_x86_64 cp311-manylinux_x86_64 cp312-manylinux_x86_64 cp313-manylinux_x86_64 cp314-manylinux_x86_64
# Vendor build happens inside manylinux container via before-build (from pyproject.toml)
# The script will detect cached libraries and skip rebuilding
Expand Down
8 changes: 1 addition & 7 deletions .github/workflows/_build_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@ name: Build macOS Wheels

on:
workflow_call:
inputs:
python-versions:
description: 'Python versions to build for'
required: false
type: string
default: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]'

jobs:
build-macos:
Expand Down Expand Up @@ -84,7 +78,7 @@ jobs:
env:
# Skip before-build since we already built vendors
CIBW_BEFORE_BUILD: ""
# Build for specified Python versions (universal2 for both Intel and Apple Silicon)
# Build for all Python versions (universal2 for both Intel and Apple Silicon)
CIBW_BUILD: cp38-macosx_* cp39-macosx_* cp310-macosx_* cp311-macosx_* cp312-macosx_* cp313-macosx_* cp314-macosx_*
# Use delocate to bundle dependencies
CIBW_REPAIR_WHEEL_COMMAND_MACOS: "delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel} --ignore-missing-dependencies"
Expand Down
8 changes: 1 addition & 7 deletions .github/workflows/_build_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@ name: Build Windows Wheels

on:
workflow_call:
inputs:
python-versions:
description: 'Python versions to build for'
required: false
type: string
default: '["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]'

jobs:
build-windows:
Expand Down Expand Up @@ -94,7 +88,7 @@ jobs:
env:
# Skip before-build since we already built vendors
CIBW_BEFORE_BUILD: ""
# Build for specified Python versions
# Build for all Python versions
CIBW_BUILD: cp38-win_amd64 cp39-win_amd64 cp310-win_amd64 cp311-win_amd64 cp312-win_amd64 cp313-win_amd64 cp314-win_amd64

# Setup Python versions for testing
Expand Down
54 changes: 53 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,30 @@ jobs:
TEST_PROXY_URL: ${{ secrets.TEST_PROXY_URL }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

# ============================================================
# Build Test Jobs
# ============================================================
build-test-linux:
name: Build Test (Linux)
needs: load-config
uses: ./.github/workflows/_build_linux.yml

build-test-macos:
name: Build Test (macOS)
needs: load-config
uses: ./.github/workflows/_build_macos.yml

build-test-windows:
name: Build Test (Windows)
needs: load-config
uses: ./.github/workflows/_build_windows.yml

# ============================================================
# Summary
# ============================================================
summary:
name: CI Summary
needs: [load-config, test]
needs: [load-config, test, build-test-linux, build-test-macos, build-test-windows]
if: always()
runs-on: ubuntu-latest

Expand All @@ -59,6 +77,40 @@ jobs:
echo "⊘ Tests: DISABLED"
fi

# Build Tests
echo ""
echo "Build Tests:"

# Linux
if [ "${{ needs.build-test-linux.result }}" == "success" ]; then
echo " ✅ Linux: PASSED"
elif [ "${{ needs.build-test-linux.result }}" == "skipped" ]; then
echo " ⊘ Linux: SKIPPED"
else
echo " ❌ Linux: FAILED"
EXIT_CODE=1
fi

# macOS
if [ "${{ needs.build-test-macos.result }}" == "success" ]; then
echo " ✅ macOS: PASSED"
elif [ "${{ needs.build-test-macos.result }}" == "skipped" ]; then
echo " ⊘ macOS: SKIPPED"
else
echo " ❌ macOS: FAILED"
EXIT_CODE=1
fi

# Windows
if [ "${{ needs.build-test-windows.result }}" == "success" ]; then
echo " ✅ Windows: PASSED"
elif [ "${{ needs.build-test-windows.result }}" == "skipped" ]; then
echo " ⊘ Windows: SKIPPED"
else
echo " ❌ Windows: FAILED"
EXIT_CODE=1
fi

echo ""
if [ "${EXIT_CODE:-0}" == "1" ]; then
echo "❌ CI Pipeline FAILED"
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[build-system]
requires = [
"setuptools>=68.0",
"setuptools>=68.0,<75.4.0",
"wheel",
"Cython>=3.0",
"tomli>=2.0.0; python_version < '3.11'"
Expand Down
Loading
Loading