re2: add Python Windows-on-ARM support

Based on CL 63710.

Fixes #537.

Change-Id: Idc53c7f8683f0f09e6c24e6aa5cafbd23ce76099
Reviewed-on: https://code-review.googlesource.com/c/re2/+/63750
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index 87e76a2..fbd1222 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -139,14 +139,20 @@
           retention-days: 1
   wheel-windows:
     name: Windows, ${{ matrix.arch.name }}, Python ${{ matrix.ver }}
-    runs-on: windows-latest
+    runs-on: ${{ matrix.arch.name == 'ARM64' && 'windows-11-arm' || 'windows-latest' }}
     strategy:
       fail-fast: false
       matrix:
         arch:
-          - { name: X86, bazel-name: x64_x86, python-name: win32     }
-          - { name: X64, bazel-name: x64,     python-name: win_amd64 }
+          - { name: X86,   bazel-name: x64_x86, python-name: win32 }
+          - { name: X64,   bazel-name: x64,     python-name: win_amd64 }
+          - { name: ARM64, bazel-name: arm64,   python-name: win_arm64 }
         ver: ['3.9', '3.10', '3.11', '3.12', '3.13']
+        exclude:
+          - arch: { name: ARM64, bazel-name: arm64, python-name: win_arm64 }
+            ver: '3.9'
+          - arch: { name: ARM64, bazel-name: arm64, python-name: win_arm64 }
+            ver: '3.10'
     env:
       BAZELISK_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       BAZEL_CPU: ${{ matrix.arch.bazel-name }}_windows
diff --git a/python/BUILD.bazel b/python/BUILD.bazel
index 74b7339..9484f7e 100644
--- a/python/BUILD.bazel
+++ b/python/BUILD.bazel
@@ -70,3 +70,11 @@
         "@platforms//os:windows",
     ],
 )
+
+platform(
+    name = "arm64_windows",
+    constraint_values = [
+        "@platforms//cpu:arm64",
+        "@platforms//os:windows",
+    ],
+)