Projet

Général

Profil

0001-ci-speed-up-CI-by-using-pytest-xdist.patch

A. Berriot, 06 juillet 2022 17:46

Télécharger (4,35 ko)

Voir les différences:

Subject: [PATCH 1/2] ci: speed up CI by using pytest-xdist

 Jenkinsfile | 9 +++++----
 tox.ini     | 7 +++++--
 2 files changed, 10 insertions(+), 6 deletions(-)
Jenkinsfile
13 13
                sh """
14 14
python3 -m venv ${env.TMPDIR}/venv/
15 15
${env.TMPDIR}/venv/bin/pip install tox
16
NUMPROCESSES=6 \
16 17
PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -rv"""
17 18
                script {
18 19
                    if (currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause')) {
19 20
                        sh """
20
        PYTESTOPTIONS=--slow \
21
        NUMPROCESSES=6 PYTESTOPTIONS=--slow \
21 22
        PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -rv"""
22 23
                        sh """
23
        PYTESTOPTIONS=--slow \
24
        NUMPROCESSES=6 PYTESTOPTIONS=--slow \
24 25
        PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -rv -e py3-buster-rbac"""
25 26
                        if (env.JOB_NAME == 'authentic' && env.GIT_BRANCH == 'origin/main') {
26 27
                                sh """
27
        PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -v -e py3-bullseye -- tests/api"""
28
        NUMPROCESSES=6 PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -v -e py3-bullseye -- tests/api"""
28 29
                                sh """
29
        PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -v -e py3-stable-backports"""
30
        NUMPROCESSES=6 PGPORT=`python3 -c 'import struct; import socket; s=socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack("ii", 1, 0)); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'` pg_virtualenv -o fsync=off ${env.TMPDIR}/venv/bin/tox -v -e py3-stable-backports"""
30 31
                        }
31 32
                    }
32 33
                }
tox.ini
23 23
[testenv]
24 24
setenv =
25 25

  
26
  NUMPROCESSES={env:NUMPROCESSES:1}
27

  
26 28
  !rbac: AUTHENTIC2_SETTINGS_FILE=tests/settings.py
27 29
  !rbac: DJANGO_SETTINGS_MODULE=authentic2.settings
28 30
  rbac: DJANGO_SETTINGS_MODULE=django_rbac.test_settings
......
69 71
  pytest-cov
70 72
  pytest-django
71 73
  pytest-random
74
  pytest-xdist
72 75
  mock<4
73 76
  pytest!=5.3.3
74 77
  lxml
......
97 100
usedevelop = True
98 101
commands =
99 102
  ./getlasso3.sh
100
  rbac: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --random-group}
101
  !rbac: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --random-group}
103
  rbac: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --numprocesses {env:NUMPROCESSES:1} --random-group}
104
  !rbac: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --numprocesses {env:NUMPROCESSES:1} --random-group}
102 105

  
103 106
[testenv:check-migrations]
104 107
basepython = python3
105
-