ci: add Windows ARM (#2362)

* ci: add Windows ARM

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* ci: install rust on Windows ARM

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* ci: different action for rust

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* ci: no sync required (avoid dev group)

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>

* fix: expected wheels on Windows ARM64

* fix: skip python 3.8 on Windows ARM64

---------

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: mayeut <mayeut@users.noreply.github.com>
This commit is contained in:
Henry Schreiner
2025-04-15 14:49:17 -04:00
committed by GitHub
co-authored by mayeut
parent 95e3a6575f
commit 99183d68ac
4 changed files with 20 additions and 8 deletions
+3
View File
@@ -1,3 +1,4 @@
import platform
import re
import textwrap
from pathlib import Path
@@ -56,6 +57,8 @@ def test_pinned_versions(tmp_path, python_version, build_frontend_env_nouv):
pytest.skip("linux doesn't pin individual tool versions, it pins manylinux images instead")
if python_version != "3.12" and utils.platform == "pyodide":
pytest.skip(f"pyodide does not support Python {python_version}")
if python_version == "3.8" and utils.platform == "windows" and platform.machine() == "ARM64":
pytest.skip(f"Windows ARM64 does not support Python {python_version}")
project_dir = tmp_path / "project"
project_with_expected_version_checks.generate(project_dir)
+9 -1
View File
@@ -245,6 +245,10 @@ def _expected_wheels(
"cp313-cp313t",
]
if machine_arch == "ARM64":
# no CPython 3.8 on Windows ARM64
python_abi_tags.pop(0)
if machine_arch in ["x86_64", "i686", "AMD64", "aarch64", "arm64"]:
python_abi_tags += [
"pp38-pypy38_pp73",
@@ -290,7 +294,11 @@ def _expected_wheels(
)
elif platform == "windows":
platform_tags = ["win_amd64"] if machine_arch == "AMD64" else ["win32"]
platform_tags = {
"AMD64": ["win_amd64"],
"ARM64": ["win_arm64"],
"x86": ["win32"],
}.get(machine_arch, [])
elif platform == "macos":
if python_abi_tag.startswith("pp"):