diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml
index c718b212..3045cb00 100644
--- a/.github/workflows/e2e-tests.yml
+++ b/.github/workflows/e2e-tests.yml
@@ -12,20 +12,39 @@ on:
   workflow_dispatch:
 
 jobs:
+  test-setup-python-older:
+    name: Test setup-python old versions
+    runs-on: ${{ matrix.operating-system }}
+    strategy:
+      matrix:
+        operating-system:
+          [ubuntu-20.04, ubuntu-22.04, windows-latest, macos-latest, macos-13]
+        python: [3.8.10, 3.8.18]
+        exclude:
+          - operating-system: ubuntu-22.04
+            python: '3.8.10'
+          - operating-system: macos-latest
+            python: '3.8.18'
+          - operating-system: windows-latest
+            python: '3.8.18'
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Run with setup-python ${{ matrix.python }}
+        id: setup-python
+        uses: ./
+        with:
+          python-version: ${{ matrix.python }}
+      - name: Verify ${{ matrix.python }}
+        run: python __tests__/verify-python.py ${{ matrix.python }}
   test-setup-python:
     name: Test setup-python
     runs-on: ${{ matrix.operating-system }}
     strategy:
       matrix:
         operating-system:
-          [
-            ubuntu-20.04,
-            windows-latest,
-            ubuntu-22.04,
-            ubuntu-latest,
-            macos-latest,
-            macos-13
-          ]
+          [ubuntu-20.04, windows-latest, ubuntu-22.04, macos-latest, macos-13]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/test-python.yml b/.github/workflows/test-python.yml
index 8d68df25..4f20f021 100644
--- a/.github/workflows/test-python.yml
+++ b/.github/workflows/test-python.yml
@@ -20,16 +20,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: [3.8.10, 3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        exclude:
+          - os: ubuntu-22.04
+            python: 3.8.10
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -63,16 +58,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: [3.8.10, 3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        exclude:
+          - os: ubuntu-22.04
+            python: 3.8.10
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -109,16 +99,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: [3.8.10, 3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        exclude:
+          - os: ubuntu-22.04
+            python: 3.8.10
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -153,16 +138,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: [3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.0]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: [3.8.10, 3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.0]
+        exclude:
+          - os: ubuntu-22.04
+            python: 3.8.10
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -202,16 +182,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: [3.8.10, 3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.0]
+        exclude:
+          - os: ubuntu-22.04
+            python: 3.8.10
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -284,15 +259,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -383,16 +350,8 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os:
-          [
-            macos-latest,
-            windows-latest,
-            ubuntu-20.04,
-            ubuntu-22.04,
-            macos-13,
-            ubuntu-latest
-          ]
-        python: ['3.9', '3.10', '3.11', '3.12', '3.13']
+        os: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04, macos-13]
+        python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -416,7 +375,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
-        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
+        python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python and check latest
@@ -446,6 +405,7 @@ jobs:
         uses: ./
         with:
           python-version: |
+            3.8
             3.9
             3.10
             3.11
diff --git a/package-lock.json b/package-lock.json
index 3bd745d3..37e5afe0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2549,9 +2549,9 @@
       }
     },
     "node_modules/cross-spawn": {
-      "version": "7.0.6",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
-      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
       "dev": true,
       "dependencies": {
         "path-key": "^3.1.0",