Skip to content

Commit

Permalink
use cibuildwheel on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
nulano committed Nov 15, 2023
1 parent e487a0f commit 0256797
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .github/workflows/wheels-test.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
echo TODO!!!!


58 changes: 57 additions & 1 deletion .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ on:
paths:
- ".github/workflows/wheels*.yml"
- "wheels/*"
- "winbuild/build_prepare.py"
- "winbuild/fribidi.cmake"
tags:
- "*"
pull_request:
paths:
- ".github/workflows/wheels*.yml"
- "wheels/*"
- "winbuild/build_prepare.py"
- "winbuild/fribidi.cmake"
workflow_dispatch:

permissions:
Expand Down Expand Up @@ -63,6 +67,58 @@ jobs:
with:
path: ./wheelhouse/*.whl

windows:
name: Windows ${{ matrix.arch }}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- arch: x86
cibw_arch: x86
- arch: x64
cibw_arch: AMD64
- arch: ARM64
cibw_arch: ARM64
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Checkout extra test images
uses: actions/checkout@v4
with:
repository: python-pillow/test-images
path: Tests\test-images
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install build dependencies
run: |
$nasm_uri = "https://github.com/python-pillow/pillow-depends/raw/main/nasm-2.16.01-win64.zip"
Invoke-WebRequest -Uri $nasm_uri -OutFile 'nasm.zip'
7z x nasm.zip "-o$env:RUNNER_WORKSPACE\"
echo "$env:RUNNER_WORKSPACE\nasm-2.16.01" >> $env:GITHUB_PATH
choco install ghostscript --version=10.0.0.20230317
echo "C:\Program Files\gs\gs10.00.0\bin" >> $env:GITHUB_PATH
# Install extra test images
xcopy /S /Y Tests\test-images\* Tests\images
& python.exe winbuild\build_prepare.py -v --no-imagequant --architecture=${{ matrix.arch }}
shell: pwsh
- name: Build wheels
uses: pypa/[email protected]
with:
output-dir: wheelhouse
env:
CIBW_ARCHS: ${{ matrix.cibw_arch }}
CIBW_BEFORE_ALL: "call {package}\\winbuild\\build\\build_dep_all.cmd"
CIBW_CONFIG_SETTINGS: raqm=enable raqm=vendor fribidi=vendor
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl

sdist:
runs-on: ubuntu-latest
steps:
Expand All @@ -85,7 +141,7 @@ jobs:
success:
permissions:
contents: none
needs: [build, sdist]
needs: [build, windows, sdist]
runs-on: ubuntu-latest
name: Wheels Successful
steps:
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ before-all = ".github/workflows/wheels-dependencies.sh"
test-command = "cd {project} && .github/workflows/wheels-test.sh"
test-extras = "tests"

[[tool.cibuildwheel.overrides]]
select = "*-win*"
test-command = "cd /d {project} && call .github/workflows/wheels-test.cmd"

[tool.ruff]
line-length = 88
select = [
Expand Down
3 changes: 3 additions & 0 deletions winbuild/build_prepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,9 @@ def build_dep(name: str) -> str:
*get_footer(dep),
]

if "GITHUB_ACTIONS" in os.environ:
lines = [f"echo ::group::{banner}", *lines, "echo ::endgroup::"]

write_script(file, lines)
return file

Expand Down

0 comments on commit 0256797

Please sign in to comment.