From 46f6055e4e7b5ea80df5010f99b47cdffb03ea90 Mon Sep 17 00:00:00 2001
From: priya-kinthali <priya-kinthali@github.com>
Date: Fri, 21 Mar 2025 18:59:51 +0530
Subject: [PATCH] include ubuntu-arm runners for testing

---
 .github/workflows/e2e-cache-freethreaded.yml  | 55 +++++++++++--
 .github/workflows/e2e-cache.yml               | 65 +++++++++++++--
 .github/workflows/e2e-tests.yml               |  2 +
 .github/workflows/test-graalpy.yml            | 22 ++++-
 .github/workflows/test-pypy.yml               | 46 ++++++++++-
 .../workflows/test-python-freethreaded.yml    | 80 ++++++++++++++++---
 .github/workflows/test-python.yml             | 76 +++++++++++++++---
 7 files changed, 305 insertions(+), 41 deletions(-)

diff --git a/.github/workflows/e2e-cache-freethreaded.yml b/.github/workflows/e2e-cache-freethreaded.yml
index 229d70f7..e3b298cc 100644
--- a/.github/workflows/e2e-cache-freethreaded.yml
+++ b/.github/workflows/e2e-cache-freethreaded.yml
@@ -21,7 +21,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-22.04,
+            ubuntu-24.04-arm,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
       - uses: actions/checkout@v4
@@ -39,7 +48,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
       - uses: actions/checkout@v4
@@ -60,7 +78,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-22.04,
+            ubuntu-24.04-arm,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version: [3.13.0, 3.13.1, 3.13.2]
     steps:
       - uses: actions/checkout@v4
@@ -83,7 +110,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-22.04,
+            ubuntu-24.04-arm,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
       - uses: actions/checkout@v4
@@ -102,7 +138,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-22.04,
+            ubuntu-24.04-arm,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
       - uses: actions/checkout@v4
diff --git a/.github/workflows/e2e-cache.yml b/.github/workflows/e2e-cache.yml
index b206726c..5f4ef03a 100644
--- a/.github/workflows/e2e-cache.yml
+++ b/.github/workflows/e2e-cache.yml
@@ -21,7 +21,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version:
           [
             '3.9',
@@ -52,12 +61,25 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version:
           ['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
         exclude:
           - os: windows-latest
             python-version: pypy-3.11-v7.x
+          - os: ubuntu-22.04
+            python-version: pypy-3.11-v7.x
+          - os: ubuntu-22.04-arm
+            python-version: pypy-3.11-v7.x
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python
@@ -92,7 +114,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version:
           [
             '3.9',
@@ -124,7 +155,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version:
           [
             '3.9',
@@ -156,12 +196,27 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            ubuntu-latest,
+            ubuntu-24.04-arm,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            windows-latest,
+            macos-latest,
+            macos-13
+          ]
         python-version:
           ['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
         exclude:
           - os: windows-latest
             python-version: pypy-3.11-v7.x
+          - os: ubuntu-22.04
+            python-version: pypy-3.11-v7.x
+          - os: ubuntu-22.04-arm
+            python-version: pypy-3.10-v7.x
+          - os: ubuntu-22.04-arm
+            python-version: pypy-3.11-v7.x
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python
diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml
index c718b212..2dc11124 100644
--- a/.github/workflows/e2e-tests.yml
+++ b/.github/workflows/e2e-tests.yml
@@ -22,7 +22,9 @@ jobs:
             ubuntu-20.04,
             windows-latest,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             ubuntu-latest,
+            ubuntu-24.04-arm,
             macos-latest,
             macos-13
           ]
diff --git a/.github/workflows/test-graalpy.yml b/.github/workflows/test-graalpy.yml
index 9f01429e..7dfee4e3 100644
--- a/.github/workflows/test-graalpy.yml
+++ b/.github/workflows/test-graalpy.yml
@@ -18,7 +18,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, ubuntu-20.04, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         graalpy:
           - 'graalpy-22.3'
           - 'graalpy-23.0'
@@ -65,7 +74,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, ubuntu-20.04, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         graalpy: ['graalpy22.3', 'graalpy23.0', 'graalpy23.1', 'graalpy24.1']
 
     steps:
diff --git a/.github/workflows/test-pypy.yml b/.github/workflows/test-pypy.yml
index 66427897..94a06c8a 100644
--- a/.github/workflows/test-pypy.yml
+++ b/.github/workflows/test-pypy.yml
@@ -21,7 +21,16 @@ jobs:
       fail-fast: false
       matrix:
         os:
-          [macos-latest, windows-latest, ubuntu-20.04, ubuntu-latest, macos-13]
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         pypy:
           - 'pypy-2.7'
           - 'pypy-3.10'
@@ -130,7 +139,16 @@ jobs:
       fail-fast: false
       matrix:
         os:
-          [macos-latest, windows-latest, ubuntu-20.04, ubuntu-latest, macos-13]
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         pypy: ['pypy2.7', 'pypy3.9', 'pypy3.10-nightly', 'pypy3.11']
 
     steps:
@@ -155,7 +173,17 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - uses: actions/checkout@v4
       - name: Setup PyPy and check latest
@@ -188,7 +216,17 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-20.04,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - uses: actions/checkout@v4
       - name: Setup PyPy and check latest
diff --git a/.github/workflows/test-python-freethreaded.yml b/.github/workflows/test-python-freethreaded.yml
index fe74dec0..c769046a 100644
--- a/.github/workflows/test-python-freethreaded.yml
+++ b/.github/workflows/test-python-freethreaded.yml
@@ -26,8 +26,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
@@ -62,8 +64,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
@@ -101,8 +105,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
@@ -138,8 +144,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0, 3.13.1, 3.13.2]
     steps:
@@ -178,8 +186,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0, 3.13.1, 3.13.2]
     steps:
@@ -218,8 +228,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
     steps:
@@ -248,8 +260,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
     steps:
       - name: Checkout
@@ -278,7 +292,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -306,7 +329,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -341,8 +373,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.0t, 3.13.1t, 3.13.2t]
     steps:
@@ -367,7 +401,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         python-version: [3.13t, 3.14t-dev]
     steps:
       - uses: actions/checkout@v4
@@ -385,7 +428,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python and check latest
@@ -411,8 +463,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.13.1, 3.13.2, 3.14-dev, 3.14.0-alpha.6]
     steps:
diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml
index 74aaff40..7f2d9637 100644
--- a/.github/workflows/test-python.yml
+++ b/.github/workflows/test-python.yml
@@ -26,8 +26,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
     steps:
@@ -69,8 +71,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
     steps:
@@ -115,8 +119,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
     steps:
@@ -159,8 +165,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.2]
     steps:
@@ -208,8 +216,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
     steps:
@@ -257,8 +267,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: [pypy3.11-7.3.18, graalpy-24.1.2, 3.13.2, 3.14-dev]
         exclude:
@@ -290,8 +302,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
     steps:
       - name: Checkout
@@ -326,7 +340,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -354,7 +377,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-latest, windows-latest, ubuntu-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -389,8 +421,10 @@ jobs:
             windows-latest,
             ubuntu-20.04,
             ubuntu-22.04,
+            ubuntu-22.04-arm,
             macos-13,
-            ubuntu-latest
+            ubuntu-latest,
+            ubuntu-24.04-arm
           ]
         python: ['3.9', '3.10', '3.11', '3.12', '3.13']
     steps:
@@ -415,7 +449,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
         python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
     steps:
       - uses: actions/checkout@v4
@@ -439,7 +482,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
+        os:
+          [
+            macos-latest,
+            windows-latest,
+            ubuntu-22.04,
+            ubuntu-22.04-arm,
+            ubuntu-24.04-arm,
+            ubuntu-latest,
+            macos-13
+          ]
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python and check latest