11name : CI
2- on : [push, pull_request]
2+ on :
3+ pull_request :
4+ push :
5+ branches : main
6+ defaults :
7+ run :
8+ shell : bash
9+ concurrency :
10+ group : CI-${{ github.ref }}
11+ # Queue on all branches and tags, but only cancel overlapping PR burns.
12+ cancel-in-progress : ${{ github.ref != 'refs/heads/main' || !startsWith(github.ref, 'refs/tags/') }}
313jobs :
414 org-check :
515 name : Check GitHub Organization
6- if : ${{ github.repository_owner == 'jsirois' }}
7- runs-on : ubuntu-22 .04
16+ if : github.repository_owner == 'jsirois'
17+ runs-on : ubuntu-24 .04
818 steps :
919 - name : Noop
1020 run : " true"
1121 checks :
1222 name : TOXENV=${{ matrix.tox-env }}
1323 needs : org-check
14- runs-on : ubuntu-22 .04
24+ runs-on : ubuntu-24 .04
1525 strategy :
1626 matrix :
1727 include :
2030 tox-env : lint
2131 - check-name : Types
2232 python-version : 3.9
23- tox-env : typecheck
33+ tox-env : check
2434 steps :
2535 - name : Checkout
2636 uses : actions/checkout@v4
@@ -40,16 +50,40 @@ jobs:
4050 matrix :
4151 include :
4252 - python-version : [2, 7, 18]
43- os : ubuntu-22 .04
53+ os : ubuntu-24 .04
4454 - python-version : [3, 5, 10]
45- os : ubuntu-22 .04
55+ os : ubuntu-24 .04
4656 - python-version : [3, 6, 15]
47- os : ubuntu-22.04
57+ os : ubuntu-24.04
58+ - python-version : [3, 7, 17]
59+ os : ubuntu-24.04
60+ - python-version : [3, 8, 18]
61+ os : ubuntu-24.04
4862 - python-version : [2, 7, 18]
49- os : macos-12
63+ os : macos-13
5064 steps :
5165 - name : Checkout
5266 uses : actions/checkout@v4
67+ - name : Install Python Build Deps
68+ if : matrix.os == 'ubuntu-24.04'
69+ run : |
70+ sudo apt update &&
71+ sudo apt install -y \
72+ build-essential \
73+ libssl-dev \
74+ zlib1g-dev \
75+ libbz2-dev \
76+ libreadline-dev \
77+ libsqlite3-dev \
78+ curl \
79+ git \
80+ libncursesw5-dev \
81+ xz-utils \
82+ tk-dev \
83+ libxml2-dev \
84+ libxmlsec1-dev \
85+ libffi-dev \
86+ liblzma-dev
5387 - name : Setup Python ${{ join(matrix.python-version, '.') }}
5488 id : pyenv
5589 # Upgrade node16 -> node20: Out for review here:
6195 run : |
6296 alias python="${{ steps.pyenv.outputs.pyenv_root }}/versions/${{ join(matrix.python-version, '.') }}/bin/python"
6397 python -V
64- python -mensurepip -U
98+
99+ pyver="${{ matrix.python-version[0] }}.${{ matrix.python-version[1] }}"
100+ if [[ "3.8" == "${pyver}" ]]; then
101+ python -mensurepip
102+ else
103+ curl -fLO https://bootstrap.pypa.io/pip/${pyver}/get-pip.py
104+ python get-pip.py
105+ rm get-pip.py
106+ fi
107+ python -mpip install -U pip
65108 python -mpip install -U tox
66109 python -mtox -epy${{ matrix.python-version[0] }}${{ matrix.python-version[1] }} -- -vvs
67110 unit-tests :
@@ -71,33 +114,36 @@ jobs:
71114 strategy :
72115 matrix :
73116 include :
74- - os : ubuntu-22.04
75- python-version : [3, 7]
76- - os : ubuntu-22.04
77- python-version : [3, 8]
78- - os : ubuntu-22.04
117+ - os : ubuntu-24.04
79118 python-version : [3, 9]
80- - os : ubuntu-22 .04
119+ - os : ubuntu-24 .04
81120 python-version : [3, 10]
82- - os : ubuntu-22 .04
121+ - os : ubuntu-24 .04
83122 python-version : [3, 11]
84- - os : ubuntu-22.04
85- python-version : [3, 12]
86- - os : ubuntu-22.04
87- python-version : [3, 13, "0-alpha.2"]
88- - os : macos-12
123+ - os : ubuntu-24.04
89124 python-version : [3, 12]
90- - os : macos-12
91- python-version : [3, 13, "0-alpha.2"]
125+ - os : ubuntu-24.04
126+ python-version : [3, 13]
127+ - os : ubuntu-24.04
128+ python-version : [3, 14, "0-alpha.1"]
129+ - os : macos-13
130+ python-version : [3, 13]
131+ - os : macos-13
132+ python-version : [3, 14, "0-alpha.1"]
92133 steps :
93134 - name : Checkout
94135 uses : actions/checkout@v4
95136 - name : Setup Python ${{ join(matrix.python-version, '.') }}
96137 uses : actions/setup-python@v5
97138 with :
98139 python-version : " ${{ join(matrix.python-version, '.') }}"
140+ - name : Setup Tox Python
141+ uses : actions/setup-python@v5
142+ with :
143+ python-version : 3.11
99144 - name : Run Unit Tests
100145 run : |
101- pip install -U pip
102- pip install -U tox
103- tox -epy${{ matrix.python-version[0] }}${{ matrix.python-version[1] }} -- -vvs
146+ python3.11 -V
147+ python3.11 -mpip install -U pip
148+ python3.11 -mpip install -U tox
149+ python3.11 -mtox -epy${{ matrix.python-version[0] }}${{ matrix.python-version[1] }} -- -vvs
0 commit comments