v1.5.1 #11
Workflow file for this run
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
name: release-deploy | |
on: | |
release: | |
types: [ published ] | |
# push: | |
# branches: [ main ] | |
# pull_request: | |
jobs: | |
build-sdist: | |
name: Build source distribution | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: actions/setup-python@v5 | |
name: Install Python | |
with: | |
python-version: '3.10' | |
- name: Build sdist | |
run: | | |
python -m pip install -U pip | |
python -m pip install build | |
python -m build --sdist | |
- name: Store artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdist | |
path: ./dist | |
build-wheels: | |
name: Build wheel for cp${{ matrix.python }}-${{ matrix.platform_id }}-${{ matrix.manylinux_image }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Windows 64 bit | |
- os: windows-latest | |
python: 39 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 310 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 311 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 312 | |
platform_id: win_amd64 | |
- os: windows-latest | |
python: 313 | |
platform_id: win_amd64 | |
# Linux 64 bit manylinux2014 | |
- os: ubuntu-latest | |
python: 39 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 310 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 311 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 312 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
- os: ubuntu-latest | |
python: 313 | |
platform_id: manylinux_x86_64 | |
manylinux_image: manylinux2014 | |
# Linux aarch64 | |
- os: ubuntu-latest | |
python: 39 | |
platform_id: manylinux_aarch64 | |
- os: ubuntu-latest | |
python: 310 | |
platform_id: manylinux_aarch64 | |
- os: ubuntu-latest | |
python: 311 | |
platform_id: manylinux_aarch64 | |
- os: ubuntu-latest | |
python: 312 | |
platform_id: manylinux_aarch64 | |
- os: ubuntu-latest | |
python: 313 | |
platform_id: manylinux_aarch64 | |
# MacOS x86_64 | |
- os: macos-latest | |
python: 39 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 310 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 311 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 312 | |
platform_id: macosx_x86_64 | |
- os: macos-latest | |
python: 313 | |
platform_id: macosx_x86_64 | |
# MacOS arm64 | |
- os: macos-latest | |
python: 39 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 310 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 311 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 312 | |
platform_id: macosx_arm64 | |
- os: macos-latest | |
python: 313 | |
platform_id: macosx_arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up QEMU | |
if: ${{ matrix.platform_id == 'manylinux_aarch64' }} | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm64 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
python -m pip install -U pip | |
python -m pip install cibuildwheel>=2.21 | |
- name: Build wheels | |
env: | |
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }} | |
CIBW_ARCHS: all | |
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }} | |
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux_image }} | |
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux_image }} | |
CIBW_BUILD_VERBOSITY: 1 | |
run: | | |
python --version | |
python -m cibuildwheel --output-dir dist | |
- name: Store artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-${{ matrix.python }}-${{ matrix.platform_id }} | |
path: ./dist | |
# test-package: | |
# name: Test built package | |
# needs: [ build-wheels, build-sdist ] | |
# runs-on: ubuntu-latest | |
# timeout-minutes: 30 | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] | |
# | |
# steps: | |
# - name: Set up Python ${{ matrix.python-version }} | |
# uses: actions/setup-python@v5 | |
# with: | |
# python-version: ${{ matrix.python-version }} | |
# | |
# - name: Download the wheels | |
# uses: actions/download-artifact@v4 | |
# with: | |
# path: dist/ | |
# merge-multiple: true | |
# | |
# - name: Install from package wheels and test | |
# run: | | |
# python -m venv testwhl | |
# source testwhl/bin/activate | |
# python -m pip install -U pip | |
# python -m pip install pytest numpy | |
# python -m pip install -U --pre --find-links dist/ pyjpegls | |
# python -m pytest --pyargs jpeg_ls.tests | |
# deactivate | |
# | |
# - name: Install from package tarball and test | |
# run: | | |
# python -m venv testsrc | |
# source testsrc/bin/activate | |
# python -m pip install -U pip | |
# python -m pip install pytest numpy | |
# python -m pip install -U dist/pyjpegls*.tar.gz | |
# python -m pytest --pyargs jpeg_ls.tests | |
# deactivate | |
# See: https://github.com/pypa/gh-action-pypi-publish/discussions/15 | |
deploy: | |
name: Upload wheels to PyPI | |
# needs: [ test-package ] | |
needs: [ build-wheels, build-sdist ] | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
environment: | |
name: pypi | |
url: https://pypi.org/p/pyjpegls | |
permissions: | |
id-token: write | |
steps: | |
- name: Download the wheels | |
uses: actions/download-artifact@v4 | |
with: | |
path: dist/ | |
merge-multiple: true | |
- name: Publish package to PyPi | |
uses: pypa/gh-action-pypi-publish@release/v1 |