Skip to content

Commit e47ce38

Browse files
committed
Remove use of discontinued Ubuntu 20.04 image
1 parent d90264a commit e47ce38

File tree

1 file changed

+64
-41
lines changed

1 file changed

+64
-41
lines changed

.github/workflows/main.yml

Lines changed: 64 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ env:
88
pip --no-cache-dir"
99

1010
jobs:
11-
tests_py27:
12-
runs-on: ubuntu-20.04
13-
container: python:2.7
11+
tests_py2x:
12+
runs-on: ubuntu-22.04
13+
container:
14+
image: python:2.7
1415
strategy:
1516
fail-fast: false
17+
matrix:
18+
toxenv: [py27, py27-configparser]
1619

1720
steps:
1821
- uses: actions/checkout@v4
@@ -21,56 +24,66 @@ jobs:
2124
run: $PIP install virtualenv tox
2225

2326
- name: Run the unit tests
24-
run: TOXENV=py27 tox
27+
run: TOXENV=${{ matrix.toxenv }} tox
2528

2629
- name: Run the end-to-end tests
27-
run: TOXENV=py27 END_TO_END=1 tox
30+
run: TOXENV=${{ matrix.toxenv }} END_TO_END=1 tox
2831

29-
tests_py34:
30-
runs-on: ubuntu-20.04
31-
strategy:
32-
fail-fast: false
32+
test_py34:
33+
runs-on: ubuntu-22.04
34+
container:
35+
image: ubuntu:20.04
36+
env:
37+
LANG: C.UTF-8
3338

3439
steps:
3540
- uses: actions/checkout@v4
3641

37-
- name: Build OpenSSL 1.0.2 (required by Python 3.4)
42+
- name: Install build dependencies
3843
run: |
39-
sudo apt-get install build-essential zlib1g-dev
44+
apt-get update
45+
apt-get install -y build-essential unzip wget \
46+
libncurses5-dev libgdbm-dev libnss3-dev \
47+
libreadline-dev zlib1g-dev
4048
49+
- name: Build OpenSSL 1.0.2 (required by Python 3.4)
50+
run: |
4151
cd $RUNNER_TEMP
4252
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2u/openssl-1.0.2u.tar.gz
4353
tar -xf openssl-1.0.2u.tar.gz
4454
cd openssl-1.0.2u
4555
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib-dynamic
4656
make
47-
sudo make install
57+
make install
4858
49-
echo CFLAGS="-I/usr/local/ssl/include $CFLAGS" >> $GITHUB_ENV
59+
echo CFLAGS="-I/usr/local/ssl/include $CFLAGS" >> $GITHUB_ENV
5060
echo LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS" >> $GITHUB_ENV
5161
echo LD_LIBRARY_PATH="/usr/local/ssl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
5262
53-
sudo ln -s /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib/libssl.so.1.0.0
54-
sudo ln -s /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.1.0.0
55-
sudo ldconfig
63+
ln -s /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib/libssl.so.1.0.0
64+
ln -s /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.1.0.0
65+
ldconfig
5666
5767
- name: Build Python 3.4
5868
run: |
59-
sudo apt-get install build-essential libncurses5-dev libgdbm-dev libnss3-dev libreadline-dev zlib1g-dev
60-
6169
cd $RUNNER_TEMP
6270
wget -O cpython-3.4.10.zip https://github.com/python/cpython/archive/refs/tags/v3.4.10.zip
6371
unzip cpython-3.4.10.zip
6472
cd cpython-3.4.10
65-
./configure
73+
./configure --with-ensurepip=install
6674
make
67-
sudo make install
75+
make install
6876
6977
python3.4 --version
7078
python3.4 -c 'import ssl'
79+
pip3.4 --version
7180
72-
- name: Install dependencies
73-
run: $PIP install virtualenv==20.4.7 tox==3.28.0
81+
ln -s /usr/local/bin/python3.4 /usr/local/bin/python
82+
ln -s /usr/local/bin/pip3.4 /usr/local/bin/pip
83+
84+
- name: Install Python dependencies
85+
run: |
86+
$PIP install virtualenv==20.4.7 tox==3.14.0
7487
7588
- name: Run the unit tests
7689
run: TOXENV=py34 tox
@@ -79,40 +92,49 @@ jobs:
7992
run: TOXENV=py34 END_TO_END=1 tox
8093

8194
tests_py35:
82-
runs-on: ubuntu-20.04
95+
runs-on: ubuntu-22.04
96+
container:
97+
image: python:3.5
8398
strategy:
8499
fail-fast: false
85100

86101
steps:
87102
- uses: actions/checkout@v4
88103

89-
- name: Work around pip SSL cert verify error
90-
run: sudo $PIP config set global.trusted-host 'pypi.python.org pypi.org files.pythonhosted.org'
104+
- name: Install dependencies
105+
run: $PIP install virtualenv tox
91106

92-
- name: Set up Python 3.5
93-
uses: actions/setup-python@v5
94-
with:
95-
python-version: 3.5
107+
- name: Run the unit tests
108+
run: TOXENV=py35 tox
109+
110+
- name: Run the end-to-end tests
111+
run: TOXENV=py35 END_TO_END=1 tox
112+
113+
tests_py36:
114+
runs-on: ubuntu-22.04
115+
container:
116+
image: python:3.6
117+
strategy:
118+
fail-fast: false
119+
120+
steps:
121+
- uses: actions/checkout@v4
96122

97123
- name: Install dependencies
98124
run: $PIP install virtualenv tox
99125

100-
- name: Set variable for TOXENV based on Python version
101-
id: toxenv
102-
run: python -c 'import sys; print("TOXENV=py%d%d" % (sys.version_info.major, sys.version_info.minor))' | tee -a $GITHUB_OUTPUT
103-
104126
- name: Run the unit tests
105-
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} tox
127+
run: TOXENV=py36 tox
106128

107129
- name: Run the end-to-end tests
108-
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} END_TO_END=1 tox
130+
run: TOXENV=py36 END_TO_END=1 tox
109131

110132
tests_py3x:
111-
runs-on: ubuntu-20.04
133+
runs-on: ubuntu-22.04
112134
strategy:
113135
fail-fast: false
114136
matrix:
115-
python-version: [3.6, 3.7, 3.8, 3.9, "3.10", 3.11, 3.12, 3.13]
137+
python-version: [3.7, 3.8, 3.9, "3.10", 3.11, 3.12, 3.13]
116138

117139
steps:
118140
- uses: actions/checkout@v4
@@ -136,8 +158,9 @@ jobs:
136158
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} END_TO_END=1 tox
137159

138160
coverage_py27:
139-
runs-on: ubuntu-20.04
140-
container: python:2.7
161+
runs-on: ubuntu-22.04
162+
container:
163+
image: python:2.7
141164
strategy:
142165
fail-fast: false
143166

@@ -151,7 +174,7 @@ jobs:
151174
run: TOXENV=cover tox
152175

153176
coverage_py3x:
154-
runs-on: ubuntu-20.04
177+
runs-on: ubuntu-22.04
155178
strategy:
156179
fail-fast: false
157180
matrix:
@@ -172,7 +195,7 @@ jobs:
172195
run: TOXENV=cover3 tox
173196

174197
docs:
175-
runs-on: ubuntu-20.04
198+
runs-on: ubuntu-22.04
176199

177200
steps:
178201
- uses: actions/checkout@v4

0 commit comments

Comments
 (0)