Skip to content

Commit 346bdba

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

File tree

2 files changed

+370
-111
lines changed

2 files changed

+370
-111
lines changed

.github/workflows/tests.yml

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

0 commit comments

Comments
 (0)