Merge pull request #258 from hugovk/reusable-workflow

Remove duplication with a reusable workflow
This commit is contained in:
Andrew Murray 2022-02-22 19:35:35 +11:00 committed by GitHub
commit 4b74b535dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 85 additions and 114 deletions

75
.github/workflows/wheels-build.yml vendored Normal file
View File

@ -0,0 +1,75 @@
name: Build wheels
on:
workflow_call:
inputs:
build-commit:
required: true
type: string
artifacts-name:
required: true
type: string
env:
REPO_DIR: Pillow
BUILD_DEPENDS: ""
TEST_DEPENDS: "pytest pytest-cov pytest-timeout"
WHEEL_SDIR: wheelhouse
jobs:
build:
name: ${{ matrix.os-name }} ${{ matrix.python }} ${{ matrix.platform }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ "macos-latest", "ubuntu-20.04" ]
python: [ "pypy3.7-7.3.8", "pypy3.8-7.3.8", "3.7", "3.8", "3.9", "3.10" ]
platform: [ "x86_64", "i686" ]
macos-target: [ "10.10" ]
exclude:
- os: "macos-latest"
platform: "i686"
include:
- os: "macos-latest"
os-name: "osx"
- os: "ubuntu-20.04"
os-name: "focal"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.10"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.9"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.8"
macos-target: "11.0"
env:
BUILD_COMMIT: ${{ inputs.build-commit }}
PLAT: ${{ matrix.platform }}
MB_PYTHON_VERSION: ${{ matrix.python }}
TRAVIS_OS_NAME: ${{ matrix.os-name }}
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos-target }}
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Build Wheel
run: .github/workflows/build.sh
- uses: actions/upload-artifact@v2
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

View File

@ -1,125 +1,20 @@
name: Wheels name: Wheels
on: [push, pull_request, workflow_dispatch] on: [push, pull_request, workflow_dispatch]
env:
REPO_DIR: Pillow
BUILD_DEPENDS: ""
TEST_DEPENDS: "pytest pytest-cov pytest-timeout"
WHEEL_SDIR: wheelhouse
jobs: jobs:
build: build:
name: ${{ matrix.python }} ${{ matrix.os-name }} ${{ matrix.platform }} uses: ./.github/workflows/wheels-build.yml
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ "ubuntu-20.04", "macos-latest" ]
python: [ "pypy3.7-7.3.8", "pypy3.8-7.3.8", "3.7", "3.8", "3.9", "3.10" ]
platform: [ "x86_64", "i686" ]
macos-target: [ "10.10" ]
exclude:
- os: "macos-latest"
platform: "i686"
include:
- os: "macos-latest"
os-name: "osx"
- os: "ubuntu-20.04"
os-name: "focal"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.10"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.9"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.8"
macos-target: "11.0"
env:
BUILD_COMMIT: HEAD
PLAT: ${{ matrix.platform }}
MB_PYTHON_VERSION: ${{ matrix.python }}
TRAVIS_OS_NAME: ${{ matrix.os-name }}
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos-target }}
steps:
- uses: actions/checkout@v2
with: with:
submodules: true build-commit: "HEAD"
- uses: actions/setup-python@v2 artifacts-name: "wheels"
with:
python-version: 3.9
- name: Build Wheel
run: .github/workflows/build.sh
- uses: actions/upload-artifact@v2
with:
name: wheels
path: wheelhouse/*.whl
# Uncomment to get SSH access for testing
# - name: Setup tmate session
# if: failure()
# uses: mxschmitt/action-tmate@v3
build-latest: build-latest:
name: ${{ matrix.python }} ${{ matrix.os-name }} ${{ matrix.platform }} latest
runs-on: ${{ matrix.os }}
if: "!startsWith(github.ref, 'refs/tags/')" if: "!startsWith(github.ref, 'refs/tags/')"
strategy: uses: ./.github/workflows/wheels-build.yml
fail-fast: false
matrix:
os: [ "ubuntu-20.04", "macos-latest" ]
python: [ "pypy3.7-7.3.8", "pypy3.8-7.3.8", "3.7", "3.8", "3.9", "3.10" ]
platform: [ "x86_64", "i686" ]
macos-target: [ "10.10" ]
exclude:
- os: "macos-latest"
platform: "i686"
include:
- os: "macos-latest"
os-name: "osx"
- os: "ubuntu-20.04"
os-name: "focal"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.10"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.9"
macos-target: "11.0"
- os: "macos-11"
os-name: "osx"
platform: "arm64"
python: "3.8"
macos-target: "11.0"
env:
BUILD_COMMIT: main
PLAT: ${{ matrix.platform }}
MB_PYTHON_VERSION: ${{ matrix.python }}
TRAVIS_OS_NAME: ${{ matrix.os-name }}
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos-target }}
steps:
- uses: actions/checkout@v2
with: with:
submodules: true build-commit: "main"
- uses: actions/setup-python@v2 artifacts-name: "wheels-latest"
with:
python-version: 3.9
- name: Build Wheel
run: .github/workflows/build.sh
- uses: actions/upload-artifact@v2
with:
name: wheels-latest
path: wheelhouse/*.whl
release: release:
name: Create Release name: Create Release

3
.gitignore vendored
View File

@ -1,6 +1,7 @@
*.pyc *.pyc
*.swp *.swp
*~ *~
.idea
build build
working
downloads downloads
working