diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index db226e5c..4db8a8ee 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -60,6 +60,31 @@ jobs: name: cibw-wheels-aarch64-${{ matrix.os }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl + build_wheels_windows_arm64: + name: py${{ matrix.python-version }} on ${{ matrix.os }} (arm64) + runs-on: ${{ matrix.os }} + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + os: [windows-11-arm] + python-version: [39, 310, 311, 312, 313, 313t, 314, 314t] + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Build wheels + uses: pypa/cibuildwheel@65b8265957fd86372d9689a0acdfd55813970d5d # v3.1.4 + env: + CIBW_BUILD: "cp${{ matrix.python-version}}-*" + CIBW_ARCHS: ARM64 + CIBW_ENABLE: cpython-freethreading + + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + with: + name: cibw-wheels-windows-arm64-${{ matrix.os }}-${{ strategy.job-index }} + path: ./wheelhouse/*.whl + build_sdist: name: sdist runs-on: ubuntu-latest @@ -86,7 +111,7 @@ jobs: join_artifacts: name: Join artifacts runs-on: ubuntu-latest - needs: [build_wheels, build_wheels_aarch64, build_sdist] + needs: [build_wheels, build_wheels_aarch64, build_wheels_windows_arm64, build_sdist] steps: - name: Merge artifacts uses: actions/upload-artifact/merge@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 diff --git a/pyproject.toml b/pyproject.toml index e533e488..69c3e3fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,5 +37,6 @@ macos.archs = ["x86_64", "arm64"] # Warnings will be silenced with following CIBW_TEST_SKIP test-skip = "*-macosx_arm64" -before-test = "pip install pytest hypothesis" +# Hypothesis >=6.156 does not publish cp313t wheels yet. It will break the CI. +before-test = "pip install pytest \"hypothesis<6.156\"" test-command = "pytest {project}/tests --import-mode=append"