-
Notifications
You must be signed in to change notification settings - Fork 572
154 lines (141 loc) · 5.27 KB
/
tox-tests.yml
File metadata and controls
154 lines (141 loc) · 5.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
name: Tox Tests
on:
push:
branches: [master, main, v0.6]
pull_request:
branches: [master, main, v0.6]
jobs:
tests:
name: "Ubuntu ${{ matrix.ubuntu }} / ${{ matrix.tox-env }}"
runs-on: ubuntu-latest
container:
image: ubuntu:${{ matrix.ubuntu }}
options: --init
strategy:
fail-fast: false
matrix:
include:
# ── Python 2.7 (bionic & focal only) ─────────────────
- ubuntu: bionic
tox-env: py27
stats-env: ",stats"
python-pkg: "python3.8"
python-dev-pkg: "python-all-dev python3.8-dev"
python-venv-pkg: "python3.8-venv"
python-bin: python3.8
extra-pkgs: "python-setuptools python-msgpack python-prctl
python-qt4"
start-tor: false
deadsnakes-ppa: false
- ubuntu: bionic
tox-env: py27-portable
python-pkg: "python3.8"
python-dev-pkg: "python-all-dev python3.8-dev"
python-venv-pkg: "python3.8-venv"
python-bin: python3.8
extra-pkgs: "python-setuptools python-msgpack python-prctl
python-qt4"
start-tor: false
deadsnakes-ppa: false
- ubuntu: focal
tox-env: py27
stats-env: ",stats"
python-pkg: "python3.9 python3-pip"
python-dev-pkg: "python-all-dev python3.9-dev"
python-venv-pkg: "python3.9-venv"
python-bin: python3.9
extra-pkgs: "python-setuptools"
start-tor: false
deadsnakes-ppa: false
- ubuntu: focal
tox-env: py27-portable
python-pkg: "python3.9 python3-pip"
python-dev-pkg: "python-all-dev python3.9-dev"
python-venv-pkg: "python3.9-venv"
python-bin: python3.9
extra-pkgs: "python-setuptools"
start-tor: false
deadsnakes-ppa: false
# ── Python 3 ─────────────────────────────────────────
- ubuntu: bionic
tox-env: py38
stats-env: ",stats"
python-pkg: python3.8
python-dev-pkg: python3.8-dev
python-venv-pkg: python3.8-venv
python-bin: python3.8
extra-pkgs: ""
start-tor: false
deadsnakes-ppa: true
- ubuntu: focal
tox-env: py39
stats-env: ",stats"
python-pkg: python3.9
python-dev-pkg: python3.9-dev
python-venv-pkg: python3.9-venv
python-bin: python3.9
extra-pkgs: ""
start-tor: false
deadsnakes-ppa: true
- ubuntu: jammy
tox-env: py310
stats-env: ",stats"
python-pkg: python3
python-dev-pkg: python3-dev
python-venv-pkg: ""
python-bin: python3
extra-pkgs: ""
start-tor: false
deadsnakes-ppa: false
env:
DEBIAN_FRONTEND: noninteractive
LANG: en_US.UTF-8
LANGUAGE: "en_US:en"
LC_ALL: en_US.UTF-8
steps:
- name: Install base packages
run: |
apt-get update -q
apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common
- name: Add deadsnakes PPA
if: matrix.deadsnakes-ppa
run: add-apt-repository -y ppa:deadsnakes/ppa
- name: Install system dependencies
run: |
apt-get install -yq --no-install-suggests --no-install-recommends \
build-essential libcap-dev libffi-dev \
libssl-dev python3-dev python3-pip \
${{ matrix.python-pkg }} ${{ matrix.python-dev-pkg }} \
${{ matrix.python-venv-pkg }} ${{ matrix.extra-pkgs }} \
language-pack-en qt5dxcb-plugin tor xvfb git sudo dumb-init
# actions/checkout@v4 needs Node 20 → glibc 2.28+.
# Bionic (glibc 2.27) and Gitea runners use a manual git clone.
- name: Checkout repository
if: env.GITEA_ACTIONS != 'true' && matrix.ubuntu != 'bionic'
uses: actions/checkout@v4
- name: Checkout repository (manual)
if: env.GITEA_ACTIONS == 'true' || matrix.ubuntu == 'bionic'
env:
TOKEN: ${{ github.token }}
run: |
git config --global --add safe.directory "$PWD"
git init
SERVER="${GITHUB_SERVER_URL#https://}"
git remote add origin "https://x-access-token:${TOKEN}@${SERVER}/${GITHUB_REPOSITORY}.git"
git fetch --depth 1 origin "${GITHUB_SHA}"
git checkout FETCH_HEAD
- name: Install tox
run: |
${{ matrix.python-bin }} -m pip install --upgrade pip setuptools wheel
${{ matrix.python-bin }} -m pip install --upgrade tox virtualenv
- name: Create unprivileged user
run: |
useradd -m builder
chown -R builder:builder .
# TODO: fix tor tests
# - name: Start tor
# if: matrix.start-tor
# run: service tor start
- name: Run tox ${{ matrix.tox-env }}
run: runuser -u builder -- tox -e "reset,${{ matrix.tox-env }}${{ matrix.stats-env }}"