DEBUG: test on fork #11
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: Build Wheels and Release | |
on: | |
push: | |
tags: | |
- 'v*' | |
- 'buildwheels*' | |
workflow_dispatch: | |
push: | |
branches: | |
test-on-fork | |
env: | |
CIBW_BUILD_VERBOSITY: 2 | |
# CIBW_BEFORE_BUILD: pip install cython | |
CIBW_TEST_REQUIRES: pytest | |
CIBW_TEST_COMMAND: pytest --pyargs pywt | |
CIBW_ENVIRONMENT: PIP_PREFER_BINARY=1 | |
jobs: | |
build_linux_x86_64_wheels: | |
name: Build python ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] | |
cibw_manylinux: [ manylinux2014 ] | |
cibw_arch: [ "x86_64"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Install cibuildwheel | |
run: | | |
python -m pip install cibuildwheel | |
- name: Build the wheel | |
run: | | |
python -m cibuildwheel --output-dir dist | |
env: | |
CIBW_BUILD: ${{ matrix.cibw_python }} | |
CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} | |
CIBW_SKIP: "*-musllinux_*" | |
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.cibw_manylinux }} | |
CIBW_MANYLINUX_I686_IMAGE: "manylinux2010" | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: ./dist/*.whl | |
build_linux_aarch64_wheels: | |
name: Build python ${{ matrix.cibw_python }} aarch64 wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] | |
cibw_manylinux: [ manylinux2014 ] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
with: | |
platforms: arm64 | |
- name: Install cibuildwheel | |
run: | | |
python -m pip install cibuildwheel | |
- name: Build the wheel | |
run: | | |
python -m cibuildwheel --output-dir dist | |
env: | |
CIBW_BUILD: ${{ matrix.cibw_python }} | |
CIBW_ARCHS_LINUX: aarch64 | |
CIBW_SKIP: "*-musllinux_*" | |
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.cibw_manylinux }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: ./dist/*.whl | |
build_macos_wheels: | |
name: Build python ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest] | |
cibw_python: ["cp39-*", "cp310-*" , "cp311-*", "cp312-*"] | |
cibw_arch: ["x86_64", "arm64"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Install cibuildwheel | |
run: | | |
python -m pip install cibuildwheel | |
- name: Build wheels for CPython (MacOS) | |
run: | | |
# We need to set both MACOS_DEPLOYMENT_TARGET and MACOSX_DEPLOYMENT_TARGET | |
# until there is a new release with this commit: | |
# https://github.com/mesonbuild/meson-python/pull/309 (should be in 0.13.0) | |
if [[ "$CIBW_ARCHS_MACOS" == arm64 ]]; then | |
export MACOSX_DEPLOYMENT_TARGET=11.0 | |
export MACOS_DEPLOYMENT_TARGET=11.0 | |
else | |
export MACOSX_DEPLOYMENT_TARGET=10.13 | |
export MACOS_DEPLOYMENT_TARGET=10.13 | |
fi | |
echo MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} | |
python -m cibuildwheel --output-dir dist | |
env: | |
CIBW_BUILD: ${{ matrix.cibw_python }} | |
CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: ./dist/*.whl | |
build_windows_wheels: | |
name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest] | |
cibw_arch: ["AMD64", "x86"] | |
cibw_python: ["cp39-*", "cp310-*", "cp311-*", "cp312-*"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Install cibuildwheel | |
run: | | |
python -m pip install cibuildwheel | |
- name: Setup MSVC (32-bit) | |
if: matrix.cibw_arch == 'x86' | |
uses: bus1/cabuild/action/msdevshell@e22aba57d6e74891d059d66501b6b5aed8123c4d # v1 | |
with: | |
architecture: x86 | |
- name: Setup MSVC (64-bit) | |
if: matrix.cibw_arch == 'AMD64' | |
uses: bus1/cabuild/action/msdevshell@e22aba57d6e74891d059d66501b6b5aed8123c4d # v1 | |
with: | |
architecture: x64 | |
- name: Build Windows wheels for CPython | |
run: | | |
python -m cibuildwheel --output-dir dist | |
env: | |
CIBW_BUILD: ${{ matrix.cibw_python }} | |
CIBW_ARCHS_WINDOWS: ${{ matrix.cibw_arch }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: ./dist/*.whl | |
deploy: | |
name: Release | |
needs: [build_linux_x86_64_wheels, build_linux_aarch64_wheels, build_macos_wheels, build_windows_wheels] | |
if: github.repository_owner == 'PyWavelets' && startsWith(github.ref, 'refs/tags/v') && always() | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
name: Install Python | |
with: | |
python-version: '3.9' | |
- name: Install Twine | |
run: | | |
python -m pip install --upgrade pip | |
pip install twine | |
pip install cython numpy | |
- uses: actions/download-artifact@v3 | |
id: download | |
with: | |
name: wheels | |
path: ./dist | |
- name: Publish the source distribution on PyPI | |
run: | | |
PYWT_VERSION=$(git describe --tags) | |
python -m build --sdist | |
ls -la ${{ github.workspace }}/dist | |
# We prefer to release wheels before source because otherwise there is a | |
# small window during which users who pip install pywt will require compilation. | |
twine upload ${{ github.workspace }}/dist/*.whl | |
twine upload ${{ github.workspace }}/dist/pywavelets-${PYWT_VERSION:1}.tar.gz | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.TWINE_TOKEN }} | |
- name: Github release | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} |