Skip to content

Commit 357154a

Browse files
committed
Add tests for all OS and arch combinations
1 parent 33d598a commit 357154a

File tree

2 files changed

+372
-111
lines changed

2 files changed

+372
-111
lines changed

.github/workflows/tests.yml

Lines changed: 246 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,12 @@ jobs:
4242
runs-on: ubuntu-24.04
4343
if: always() # Always run, even on cancellation or failure
4444
needs:
45-
- python
45+
- linux
46+
- linux_arm64
47+
- macos
48+
- macos_arm64
49+
- windows
50+
- windows_arm64
4651
- cassandra
4752
- elasticsearchserver07
4853
- elasticsearchserver08
@@ -63,7 +68,6 @@ jobs:
6368
- rediscluster
6469
- solr
6570
- valkey
66-
- windows
6771

6872
steps:
6973
- name: Status
@@ -112,8 +116,12 @@ jobs:
112116
fail_ci_if_error: true
113117
token: ${{ secrets.CODECOV_TOKEN }}
114118

115-
# Tests
116-
python:
119+
# ==============================
120+
# Integration Test Suite Runners
121+
# (run in the CI container)
122+
# ==============================
123+
124+
linux:
117125
env:
118126
TOTAL_GROUPS: 20
119127

@@ -1544,6 +1552,188 @@ jobs:
15441552
if-no-files-found: error
15451553
retention-days: 1
15461554

1555+
# =============================================
1556+
# OS Specific Core Test Suite Runners
1557+
# (runs directly on the OS, not in a container)
1558+
# =============================================
1559+
1560+
linux_arm64:
1561+
env:
1562+
TOTAL_GROUPS: 1
1563+
1564+
strategy:
1565+
fail-fast: false
1566+
matrix:
1567+
group-number: [1]
1568+
1569+
runs-on: ubuntu-24.04-arm
1570+
timeout-minutes: 30
1571+
steps:
1572+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
1573+
1574+
- name: Fetch git tags
1575+
run: |
1576+
git fetch --tags origin
1577+
1578+
- name: Install Python
1579+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 5.6.0
1580+
with:
1581+
python-version: |
1582+
pypy3.10
1583+
3.8
1584+
3.9
1585+
3.10
1586+
3.11
1587+
3.12
1588+
3.13
1589+
1590+
- name: Install Dependencies
1591+
run: |
1592+
pip install --upgrade tox
1593+
env:
1594+
GROUP_NUMBER: ${{ matrix.group-number }}
1595+
1596+
- name: Get Environments
1597+
id: get-envs
1598+
run: |
1599+
echo "envs=$(tox -l | python ./.github/scripts/get-envs.py)" >> "$GITHUB_OUTPUT"
1600+
env:
1601+
GROUP_NUMBER: ${{ matrix.group-number }}
1602+
1603+
- name: Test
1604+
run: |
1605+
tox -vv -e ${{ steps.get-envs.outputs.envs }} -p auto
1606+
env:
1607+
TOX_PARALLEL_NO_SPINNER: 1
1608+
FORCE_COLOR: "true"
1609+
1610+
- name: Upload Coverage Artifacts
1611+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
1612+
with:
1613+
name: coverage-${{ github.job }}-${{ strategy.job-index }}
1614+
path: ./**/.coverage.*
1615+
include-hidden-files: true
1616+
if-no-files-found: error
1617+
retention-days: 1
1618+
1619+
macos:
1620+
env:
1621+
TOTAL_GROUPS: 1
1622+
1623+
strategy:
1624+
fail-fast: false
1625+
matrix:
1626+
group-number: [1]
1627+
1628+
runs-on: macos-13
1629+
timeout-minutes: 30
1630+
steps:
1631+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
1632+
1633+
- name: Fetch git tags
1634+
run: |
1635+
git fetch --tags origin
1636+
1637+
- name: Install Python
1638+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 5.6.0
1639+
with:
1640+
python-version: |
1641+
pypy3.10
1642+
3.8
1643+
3.9
1644+
3.10
1645+
3.11
1646+
3.12
1647+
3.13
1648+
1649+
- name: Install Dependencies
1650+
run: |
1651+
pip install --upgrade tox
1652+
env:
1653+
GROUP_NUMBER: ${{ matrix.group-number }}
1654+
1655+
- name: Get Environments
1656+
id: get-envs
1657+
run: |
1658+
echo "envs=$(tox -l | python ./.github/scripts/get-envs.py)" >> "$GITHUB_OUTPUT"
1659+
env:
1660+
GROUP_NUMBER: ${{ matrix.group-number }}
1661+
1662+
- name: Test
1663+
run: |
1664+
tox -vv -e ${{ steps.get-envs.outputs.envs }} -p auto
1665+
env:
1666+
TOX_PARALLEL_NO_SPINNER: 1
1667+
FORCE_COLOR: "true"
1668+
1669+
- name: Upload Coverage Artifacts
1670+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
1671+
with:
1672+
name: coverage-${{ github.job }}-${{ strategy.job-index }}
1673+
path: ./**/.coverage.*
1674+
include-hidden-files: true
1675+
if-no-files-found: error
1676+
retention-days: 1
1677+
1678+
macos_arm64:
1679+
env:
1680+
TOTAL_GROUPS: 1
1681+
1682+
strategy:
1683+
fail-fast: false
1684+
matrix:
1685+
group-number: [1]
1686+
1687+
runs-on: macos-15
1688+
timeout-minutes: 30
1689+
steps:
1690+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
1691+
1692+
- name: Fetch git tags
1693+
run: |
1694+
git fetch --tags origin
1695+
1696+
- name: Install Python
1697+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 5.6.0
1698+
with:
1699+
python-version: |
1700+
pypy3.10
1701+
3.8
1702+
3.9
1703+
3.10
1704+
3.11
1705+
3.12
1706+
3.13
1707+
1708+
- name: Install Dependencies
1709+
run: |
1710+
pip install --upgrade tox
1711+
env:
1712+
GROUP_NUMBER: ${{ matrix.group-number }}
1713+
1714+
- name: Get Environments
1715+
id: get-envs
1716+
run: |
1717+
echo "envs=$(tox -l | python ./.github/scripts/get-envs.py)" >> "$GITHUB_OUTPUT"
1718+
env:
1719+
GROUP_NUMBER: ${{ matrix.group-number }}
1720+
1721+
- name: Test
1722+
run: |
1723+
tox -vv -e ${{ steps.get-envs.outputs.envs }} -p auto
1724+
env:
1725+
TOX_PARALLEL_NO_SPINNER: 1
1726+
FORCE_COLOR: "true"
1727+
1728+
- name: Upload Coverage Artifacts
1729+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
1730+
with:
1731+
name: coverage-${{ github.job }}-${{ strategy.job-index }}
1732+
path: ./**/.coverage.*
1733+
include-hidden-files: true
1734+
if-no-files-found: error
1735+
retention-days: 1
1736+
15471737
windows:
15481738
env:
15491739
TOTAL_GROUPS: 1
@@ -1595,3 +1785,55 @@ jobs:
15951785
include-hidden-files: true
15961786
if-no-files-found: error
15971787
retention-days: 1
1788+
1789+
windows_arm64:
1790+
env:
1791+
TOTAL_GROUPS: 1
1792+
1793+
strategy:
1794+
fail-fast: false
1795+
matrix:
1796+
group-number: [1]
1797+
1798+
runs-on: windows-11-arm
1799+
timeout-minutes: 30
1800+
steps:
1801+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # 4.2.2
1802+
1803+
- name: Fetch git tags
1804+
run: |
1805+
git fetch --tags origin
1806+
1807+
- name: Install Python
1808+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 5.6.0
1809+
with:
1810+
python-version: "3.13"
1811+
1812+
- name: Install Dependencies
1813+
run: |
1814+
pip install --upgrade tox
1815+
env:
1816+
GROUP_NUMBER: ${{ matrix.group-number }}
1817+
1818+
- name: Get Environments
1819+
id: get-envs
1820+
run: |
1821+
echo "envs=$(tox -l | python ./.github/scripts/get-envs.py)" >> "$GITHUB_OUTPUT"
1822+
env:
1823+
GROUP_NUMBER: ${{ matrix.group-number }}
1824+
1825+
- name: Test
1826+
run: |
1827+
tox -vv -e ${{ steps.get-envs.outputs.envs }} -p auto
1828+
env:
1829+
TOX_PARALLEL_NO_SPINNER: 1
1830+
FORCE_COLOR: "true"
1831+
1832+
- name: Upload Coverage Artifacts
1833+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
1834+
with:
1835+
name: coverage-${{ github.job }}-${{ strategy.job-index }}
1836+
path: ./**/.coverage.*
1837+
include-hidden-files: true
1838+
if-no-files-found: error
1839+
retention-days: 1

0 commit comments

Comments
 (0)