Skip to content

Commit ef1f6f4

Browse files
committed
aarch64-pc-windows-msvc CI
1 parent 4f57bf8 commit ef1f6f4

File tree

3 files changed

+79
-8
lines changed

3 files changed

+79
-8
lines changed

.github/workflows/artifact.yaml

Lines changed: 73 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ jobs:
412412
if-no-files-found: "error"
413413
compression-level: 0
414414

415-
macos_arm64:
415+
macos_aarch64:
416416
runs-on: macos-15
417417
timeout-minutes: 10
418418
strategy:
@@ -481,7 +481,7 @@ jobs:
481481
- name: Store wheels
482482
uses: actions/upload-artifact@v4
483483
with:
484-
name: orjson_arm64_${{ matrix.python.version }}
484+
name: orjson_macos_aarch64_${{ matrix.python.version }}
485485
path: target/wheels
486486
overwrite: true
487487
retention-days: 1
@@ -561,7 +561,7 @@ jobs:
561561
- name: Store wheels
562562
uses: actions/upload-artifact@v4
563563
with:
564-
name: orjson_arm64_aarch64_${{ matrix.python.version }}
564+
name: orjson_universal2_aarch64_${{ matrix.python.version }}
565565
path: target/wheels
566566
overwrite: true
567567
retention-days: 1
@@ -690,7 +690,7 @@ jobs:
690690
cargo fetch --target "${{ matrix.platform.target }}" &
691691
692692
python.exe -m pip install --upgrade pip "maturin>=1,<2" wheel
693-
python.exe -m pip install -r test\requirements.txt -r integration\requirements.txt
693+
python.exe -m pip install -r test\requirements.txt
694694
695695
mkdir .cargo
696696
cp ci\config.toml .cargo\config.toml
@@ -714,12 +714,79 @@ jobs:
714714
if-no-files-found: "error"
715715
compression-level: 0
716716

717+
windows_aarch64:
718+
runs-on: windows-11-arm
719+
timeout-minutes: 10
720+
strategy:
721+
fail-fast: false
722+
matrix:
723+
python: [
724+
{ version: '3.13' },
725+
{ version: '3.12' },
726+
{ version: '3.11' },
727+
]
728+
env:
729+
CFLAGS: "-O2"
730+
LDFLAGS: "-Wl,--as-needed"
731+
RUSTFLAGS: "-Z mir-opt-level=4 -D warnings"
732+
TARGET: "aarch64-pc-windows-msvc"
733+
steps:
734+
735+
- name: CPU info
736+
shell: pwsh
737+
run: Get-WmiObject -Class Win32_Processor -ComputerName. | Select-Object -Property Name, NumberOfCores, NumberOfLogicalProcessors
738+
739+
- uses: actions/checkout@v4
740+
741+
- uses: actions/setup-python@v5
742+
with:
743+
python-version: "${{ matrix.python.version }}"
744+
architecture: "arm64"
745+
746+
# from maturin
747+
- shell: pwsh
748+
run: |
749+
Invoke-WebRequest -Uri "https://static.rust-lang.org/rustup/dist/$env:TARGET/rustup-init.exe" -OutFile rustup-init.exe
750+
.\rustup-init.exe --default-toolchain "$env:RUST_TOOLCHAIN-$env:TARGET" --profile minimal --component rust-src -y
751+
"$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH
752+
"CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV
753+
754+
- name: Build environment
755+
run: |
756+
cargo fetch --target "$" &
757+
758+
python.exe -m sysconfig
759+
python.exe -m pip install --upgrade pip "maturin>=1,<2" wheel
760+
python.exe -m pip install -r test\requirements.txt
761+
762+
mkdir .cargo
763+
cp ci\config.toml .cargo\config.toml
764+
765+
- name: maturin
766+
run: |
767+
maturin.exe build --release --strip --features=generic_simd --target="$env:TARGET"
768+
python.exe -m pip install orjson --no-index --find-links target\wheels
769+
770+
- run: python.exe -m pytest -s -rxX -v test
771+
env:
772+
PYTHONMALLOC: "debug"
773+
774+
- name: Store wheels
775+
uses: actions/upload-artifact@v4
776+
with:
777+
name: orjson_windows_aarch64_${{ matrix.python.version }}
778+
path: target\wheels
779+
overwrite: true
780+
retention-days: 1
781+
if-no-files-found: "error"
782+
compression-level: 0
783+
717784
pypi:
718785
name: PyPI
719786
runs-on: ubuntu-24.04
720787
timeout-minutes: 10
721788
needs: [
722-
macos_arm64,
789+
macos_aarch64,
723790
macos_universal2_aarch64,
724791
macos_universal2_amd64,
725792
manylinux_aarch64,
@@ -728,6 +795,7 @@ jobs:
728795
musllinux_aarch64,
729796
musllinux_amd64,
730797
sdist,
798+
windows_aarch64,
731799
windows_amd64,
732800
]
733801
environment:

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ not provided by the library.
2323

2424
orjson supports CPython 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14.
2525

26-
It distributes amd64/x86_64, i686/x86, aarch64/armv8, arm7, POWER/ppc64le,
27-
and s390x wheels for Linux, amd64 and aarch64 wheels for macOS, and amd64
28-
and i686/x86 wheels for Windows.
26+
It distributes amd64/x86_64/x64, i686/x86, aarch64/arm64/armv8, arm7,
27+
ppc64le/POWER8, and s390x wheels for Linux, amd64 and aarch64 wheels
28+
for macOS, and amd64, i686, and aarch64 wheels for Windows.
2929

3030
orjson does not and will not support PyPy, embedded Python builds for
3131
Android/iOS, or PEP 554 subinterpreters.

script/check-pypi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,11 @@ for abi in abis:
4545
wheels_matrix.add(f"{prefix}-{abi}-{tag}.whl")
4646

4747
wheels_unique = {
48+
f"{prefix}-cp311-cp311-win_arm64.whl",
4849
f"{prefix}-cp312-cp312-macosx_15_0_arm64.whl",
50+
f"{prefix}-cp312-cp312-win_arm64.whl",
4951
f"{prefix}-cp313-cp313-macosx_15_0_arm64.whl",
52+
f"{prefix}-cp313-cp313-win_arm64.whl",
5053
}
5154

5255
wheels_expected = wheels_matrix | wheels_unique

0 commit comments

Comments
 (0)