-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #7418 from radarhere/pillow-wheels
- Loading branch information
Showing
30 changed files
with
1,189 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#!/bin/bash | ||
|
||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | ||
# webp, zstd, xz, libtiff, libxcb cause a conflict with building webp, libtiff, libxcb | ||
# libxdmcp causes an issue on macOS < 11 | ||
# curl from brew requires zstd, use system curl | ||
# if php is installed, brew tries to reinstall these after installing openblas | ||
# remove lcms2 and libpng to fix building openjpeg on arm64 | ||
brew remove --ignore-dependencies webp zstd xz libpng libtiff libxcb libxdmcp curl php lcms2 ghostscript | ||
|
||
brew install pkg-config | ||
|
||
if [[ "$PLAT" == "arm64" ]]; then | ||
export MACOSX_DEPLOYMENT_TARGET="11.0" | ||
else | ||
export MACOSX_DEPLOYMENT_TARGET="10.10" | ||
fi | ||
fi | ||
|
||
if [[ "$MB_PYTHON_VERSION" == pypy3* ]]; then | ||
MB_PYTHON_OSX_VER="10.9" | ||
fi | ||
|
||
echo "::group::Install a virtualenv" | ||
source wheels/multibuild/common_utils.sh | ||
source wheels/multibuild/travis_steps.sh | ||
python3 -m pip install virtualenv | ||
before_install | ||
echo "::endgroup::" | ||
|
||
echo "::group::Build wheel" | ||
build_wheel | ||
ls -l "${GITHUB_WORKSPACE}/${WHEEL_SDIR}/" | ||
echo "::endgroup::" | ||
|
||
if [[ $MACOSX_DEPLOYMENT_TARGET != "11.0" ]]; then | ||
echo "::group::Test wheel" | ||
install_run | ||
echo "::endgroup::" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
name: Build Linux wheels | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
artifacts-name: | ||
required: true | ||
type: string | ||
|
||
env: | ||
CONFIG_PATH: "wheels/config.sh" | ||
REPO_DIR: "." | ||
TEST_DEPENDS: "pytest pytest-timeout" | ||
|
||
jobs: | ||
build: | ||
name: ${{ matrix.python }} ${{ matrix.mb-ml-libc }}${{ matrix.mb-ml-ver }} | ||
runs-on: "ubuntu-latest" | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: [ | ||
"pypy3.9-7.3.12", | ||
"pypy3.10-7.3.12", | ||
"3.8", | ||
"3.9", | ||
"3.10", | ||
"3.11", | ||
"3.12", | ||
] | ||
mb-ml-libc: [ "manylinux" ] | ||
mb-ml-ver: [ 2014, "_2_28" ] | ||
include: | ||
- python: "3.8" | ||
mb-ml-libc: "musllinux" | ||
mb-ml-ver: "_1_1" | ||
- python: "3.9" | ||
mb-ml-libc: "musllinux" | ||
mb-ml-ver: "_1_1" | ||
- python: "3.10" | ||
mb-ml-libc: "musllinux" | ||
mb-ml-ver: "_1_1" | ||
- python: "3.11" | ||
mb-ml-libc: "musllinux" | ||
mb-ml-ver: "_1_1" | ||
- python: "3.12" | ||
mb-ml-libc: "musllinux" | ||
mb-ml-ver: "_1_1" | ||
env: | ||
MB_PYTHON_VERSION: ${{ matrix.python }} | ||
MB_ML_LIBC: ${{ matrix.mb-ml-libc }} | ||
MB_ML_VER: ${{ matrix.mb-ml-ver }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.x" | ||
- name: Build Wheel | ||
run: .github/workflows/wheels-build.sh | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ inputs.artifacts-name }} | ||
path: wheelhouse/*.whl | ||
# Uncomment to get SSH access for testing | ||
# - name: Setup tmate session | ||
# if: failure() | ||
# uses: mxschmitt/action-tmate@v3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
name: Build macOS wheels | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
artifacts-name: | ||
required: true | ||
type: string | ||
|
||
env: | ||
CONFIG_PATH: "wheels/config.sh" | ||
REPO_DIR: "." | ||
TEST_DEPENDS: "pytest pytest-timeout" | ||
|
||
jobs: | ||
build: | ||
name: ${{ matrix.python }} ${{ matrix.platform }} | ||
runs-on: "macos-latest" | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: [ | ||
"pypy3.9-7.3.12", | ||
"pypy3.10-7.3.12", | ||
"3.8", | ||
"3.9", | ||
"3.10", | ||
"3.11", | ||
"3.12", | ||
] | ||
platform: [ "x86_64", "arm64" ] | ||
exclude: | ||
- python: "pypy3.9-7.3.12" | ||
platform: "arm64" | ||
- python: "pypy3.10-7.3.12" | ||
platform: "arm64" | ||
env: | ||
PLAT: ${{ matrix.platform }} | ||
MB_PYTHON_VERSION: ${{ matrix.python }} | ||
TRAVIS_OS_NAME: "osx" | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.x" | ||
- name: Build Wheel | ||
run: .github/workflows/wheels-build.sh | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ inputs.artifacts-name }} | ||
path: wheelhouse/*.whl | ||
# Uncomment to get SSH access for testing | ||
# - name: Setup tmate session | ||
# if: failure() | ||
# uses: mxschmitt/action-tmate@v3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
name: Wheels | ||
|
||
on: | ||
push: | ||
paths: | ||
- ".github/workflows/wheels*.yml" | ||
- "wheels/*" | ||
tags: | ||
- "*" | ||
pull_request: | ||
paths: | ||
- ".github/workflows/wheels*.yml" | ||
- "wheels/*" | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
macos: | ||
uses: ./.github/workflows/wheels-macos.yml | ||
with: | ||
artifacts-name: "wheels" | ||
|
||
linux: | ||
uses: ./.github/workflows/wheels-linux.yml | ||
with: | ||
artifacts-name: "wheels" | ||
|
||
success: | ||
permissions: | ||
contents: none | ||
needs: [macos, linux] | ||
runs-on: ubuntu-latest | ||
name: Wheels Successful | ||
steps: | ||
- name: Success | ||
run: echo Wheels Successful |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "multibuild"] | ||
path = wheels/multibuild | ||
url = https://github.com/multi-build/multibuild.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
if: tag IS present | ||
|
||
env: | ||
global: | ||
- CONFIG_PATH=wheels/config.sh | ||
- REPO_DIR=. | ||
- PLAT=aarch64 | ||
- TEST_DEPENDS=pytest-timeout | ||
|
||
language: python | ||
# Default Python version is usually 3.6 | ||
python: "3.11" | ||
dist: focal | ||
services: docker | ||
|
||
jobs: | ||
include: | ||
- name: "3.8 Focal manylinux2014 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER=2014 | ||
- MB_PYTHON_VERSION=3.8 | ||
- name: "3.8 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_2_28" | ||
- MB_PYTHON_VERSION=3.8 | ||
- name: "3.8 musllinux_1_1 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_1_1" | ||
- MB_ML_LIBC="musllinux" | ||
- MB_PYTHON_VERSION=3.8 | ||
- name: "3.9 Focal manylinux2014 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER=2014 | ||
- MB_PYTHON_VERSION=3.9 | ||
- name: "3.9 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_2_28" | ||
- MB_PYTHON_VERSION=3.9 | ||
- name: "3.9 musllinux_1_1 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_1_1" | ||
- MB_ML_LIBC="musllinux" | ||
- MB_PYTHON_VERSION=3.9 | ||
- name: "3.10 Focal manylinux2014 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER=2014 | ||
- MB_PYTHON_VERSION=3.10 | ||
- name: "3.10 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_2_28" | ||
- MB_PYTHON_VERSION=3.10 | ||
- name: "3.10 musllinux_1_1 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_1_1" | ||
- MB_ML_LIBC="musllinux" | ||
- MB_PYTHON_VERSION=3.10 | ||
- name: "3.11 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER=2014 | ||
- MB_PYTHON_VERSION=3.11 | ||
- name: "3.11 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_2_28" | ||
- MB_PYTHON_VERSION=3.11 | ||
- name: "3.11 musllinux_1_1 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_1_1" | ||
- MB_ML_LIBC="musllinux" | ||
- MB_PYTHON_VERSION=3.11 | ||
- name: "3.12 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER=2014 | ||
- MB_PYTHON_VERSION=3.12 | ||
- name: "3.12 Focal manylinux_2_28 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_2_28" | ||
- MB_PYTHON_VERSION=3.12 | ||
- name: "3.12 musllinux_1_1 aarch64" | ||
os: linux | ||
arch: arm64 | ||
env: | ||
- MB_ML_VER="_1_1" | ||
- MB_ML_LIBC="musllinux" | ||
- MB_PYTHON_VERSION=3.12 | ||
|
||
before_install: | ||
- source wheels/multibuild/common_utils.sh | ||
- source wheels/multibuild/travis_steps.sh | ||
- before_install | ||
|
||
install: | ||
- build_multilinux aarch64 build_wheel | ||
- ls -l "${TRAVIS_BUILD_DIR}/${WHEEL_SDIR}/" | ||
|
||
script: | ||
- install_run | ||
|
||
# Upload wheels to GitHub Releases | ||
deploy: | ||
provider: releases | ||
api_key: $GITHUB_RELEASE_TOKEN | ||
file_glob: true | ||
file: "${TRAVIS_BUILD_DIR}/${WHEEL_SDIR}/*.whl" | ||
on: | ||
repo: python-pillow/Pillow | ||
tags: true | ||
skip_cleanup: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,3 +29,4 @@ global-exclude .git* | |
global-exclude *.pyc | ||
global-exclude *.so | ||
prune .ci | ||
prune wheels |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.