Skip to content

Test building Windows ARM wheels #97

Test building Windows ARM wheels

Test building Windows ARM wheels #97

Workflow file for this run

name: build
on:
push:
branches:
- "master"
- "ci-*"
- "wheels-windows-arm"
tags:
- "**"
pull_request:
workflow_dispatch:
env:
PYTHON_VER: "3.11" # Python to run test/cibuildwheel
CIBW_BUILD: >
cp39-* cp310-* cp311-* cp312-* cp313-*
pp39-* pp310-* pp311-*
CIBW_TEST_COMMAND: python -m unittest discover {project}/tests
jobs:
# test_cpython:
# name: Test on ${{ matrix.platform }} ${{ matrix.architecture }} ${{ matrix.build_option }}
# runs-on: ${{ matrix.platform }}
# strategy:
# matrix:
# platform:
# - ubuntu-latest
# - macos-latest
# - windows-latest
# build_option:
# - "--warning-as-error"
# - "--warning-as-error --multi-phase-init"
# - "--warning-as-error --cffi"
# architecture:
# - x64
# include:
# - platform: windows-latest
# build_option: "--warning-as-error"
# architecture: x86
# - platform: windows-latest
# build_option: "--warning-as-error --multi-phase-init"
# architecture: x86
# - platform: windows-latest
# build_option: "--warning-as-error --cffi"
# architecture: x86
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: actions/setup-python@v5
# with:
# python-version: ${{ env.PYTHON_VER }}
# architecture: ${{ matrix.architecture }}
# - name: Run test
# run: |
# python -m pip install cffi
# python -m pip install --config-settings="--build-option=${{ matrix.build_option }}" -vv .
# python -m unittest discover tests
# test_cpython_debug:
# name: Test debug build on Ubuntu ${{ matrix.build_option }}
# runs-on: ubuntu-latest
# strategy:
# matrix:
# build_option:
# - "--warning-as-error --debug"
# - "--warning-as-error --debug --multi-phase-init"
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Run test
# run: |
# sudo apt-get update
# sudo apt-get install python3-dbg
# python3-dbg -m pip install --config-settings="--build-option=${{ matrix.build_option }}" -vv .
# python3-dbg -m unittest discover tests
# test_pypy:
# name: Test on ${{ matrix.py }}
# runs-on: ubuntu-latest
# strategy:
# matrix:
# py:
# - "pypy-3.9"
# - "pypy-3.10"
# - "pypy-3.11"
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: actions/setup-python@v5
# with:
# python-version: ${{ matrix.py }}
# - name: Build & test
# run: |
# sudo apt-get install -q -y zstd libzstd1 libzstd-dev
# python -m pip install --config-settings="--build-option=--dynamic-link-zstd --warning-as-error" -v .
# python -m unittest discover tests
# build_sdist:
# name: Build sdist
# if: startsWith(github.ref, 'refs/tags') || startsWith(github.head_ref, 'release-') || github.event_name == 'workflow_dispatch'
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: actions/setup-python@v5
# with:
# python-version: ${{ env.PYTHON_VER }}
# - name: Build sdist
# run: |
# python -m pip install -U build
# python -m build --sdist
# - name: List distributions
# run: ls -lR dist
# - name: Upload sdist
# uses: actions/upload-artifact@v4
# with:
# name: cibw-sdist
# path: dist/*.tar.gz
build_wheels:
name: Build wheels on ${{ matrix.platform }}
#if: startsWith(github.ref, 'refs/tags') || startsWith(github.head_ref, 'release-') || github.event_name == 'workflow_dispatch'
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform:
# - ubuntu-latest
# - macos-latest
- windows-latest
- windows-11-arm
env:
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_ARCHS_WINDOWS: "${{ matrix.platform ARM64 == 'windows-11-arm' && 'ARM64' }}"

Check failure on line 156 in .github/workflows/build.yml

View workflow run for this annotation

GitHub Actions / build

Invalid workflow file

The workflow is not valid. .github/workflows/build.yml (Line: 156, Col: 27): Unexpected symbol: 'ARM64'. Located at position 17 within expression: matrix.platform ARM64 == 'windows-11-arm' && 'ARM64'
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VER }}
- name: Build wheels
run: |
python -m pip install -U cibuildwheel
python -m cibuildwheel --output-dir wheelhouse
- name: List distributions
run: ls -lR wheelhouse
shell: bash
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.platform }}
path: wheelhouse/*.whl
# build_arch_wheels:
# name: Build wheels for ${{ matrix.arch }} (skip ${{ matrix.skip_image }})
# if: startsWith(github.ref, 'refs/tags') || startsWith(github.head_ref, 'release-') || github.event_name == 'workflow_dispatch'
# runs-on: ubuntu-latest
# strategy:
# matrix:
# arch:
# - aarch64
# - ppc64le
# - s390x
# # Building in QEMU is very slow, so parallelize the tasks.
# skip_image:
# - musllinux
# - manylinux
# env:
# CIBW_ARCHS: ${{ matrix.arch }}
# CIBW_SKIP: "*${{ matrix.skip_image }}*"
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - uses: actions/setup-python@v5
# with:
# python-version: ${{ env.PYTHON_VER }}
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
# - name: Build wheels
# run: |
# python -m pip install -U cibuildwheel
# python -m cibuildwheel --output-dir wheelhouse
# - name: List distributions
# run: ls -lR wheelhouse
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: cibw-wheels-${{ matrix.arch }}-${{ matrix.skip_image }}
# path: wheelhouse/*.whl
# upload_pypi:
# name: Publish to PyPI
# if: startsWith(github.ref, 'refs/tags')
# needs:
# - build_sdist
# - build_wheels
# - build_arch_wheels
# runs-on: ubuntu-latest
# environment: publish
# permissions:
# id-token: write # This permission is mandatory for trusted publishing
# steps:
# - name: Download wheels
# uses: actions/download-artifact@v4
# with:
# pattern: cibw-*
# path: dist
# merge-multiple: true
# - name: List distributions
# run: ls -lR dist
# - name: Upload to PyPI
# uses: pypa/gh-action-pypi-publish@release/v1
# with:
# skip-existing: true
# verbose: true
# print-hash: true