misc: improve jenkins log with parallel tox (#72643)

This commit is contained in:
Benjamin Dauvergne 2022-12-21 17:08:29 +01:00 committed by Gitea
parent 157a69fab6
commit a652576b84
2 changed files with 46 additions and 27 deletions

19
Jenkinsfile vendored
View File

@ -9,23 +9,18 @@ pipeline {
stages {
stage('Unit Tests') {
steps {
sh 'tox -rv -p 8'
sh """
python3 -m venv ./venv/
./venv/bin/pip install "tox"
./venv/bin/tox run-parallel --workdir ./tox-workdir --recreate --parallel 8 --parallel-no-spinner
./venv/bin/tox run -e coverage-report"""
}
post {
always {
script {
utils = new Utils()
utils.publish_coverage('coverage-*.xml')
utils.publish_coverage_native(
'index.html', 'htmlcov-py3-django22-drf312-coverage-authentic', 'Coverage authentic tests')
utils.publish_coverage_native(
'index.html', 'htmlcov-py3-django22-drf312-coverage-hobo', 'Coverage hobo tests')
utils.publish_coverage_native(
'index.html', 'htmlcov-py3-django22-drf312-coverage-multipublik', 'Coverage multipublik tests')
utils.publish_coverage_native(
'index.html', 'htmlcov-py3-django22-drf312-coverage-multitenant', 'Coverage multitenant tests')
utils.publish_coverage_native(
'index.html', 'htmlcov-py3-django22-drf312-coverage-passerelle', 'Coverage passerelle tests')
utils.publish_coverage('coverage.xml')
utils.publish_coverage_native('index.html', 'htmlcov', 'Coverage')
utils.publish_pylint('pylint.out')
}
mergeJunitResults()

54
tox.ini
View File

@ -3,21 +3,25 @@
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
[tox]
min_version = 4
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/hobo/{env:BRANCH_NAME:}
envlist =
py3-django22-drf39-{hobo,authentic,multipublik,multitenant,schemas,passerelle}
py3-django22-drf312-coverage-{hobo,authentic,multipublik,multitenant,schemas,passerelle}
py3-black
py3-django22-{drf39,drf312}-{hobo,authentic,multipublik,multitenant,schemas,passerelle}
code-style
[testenv]
usedevelop = True
parallel_show_output = True
setenv =
# necessary to separate coverage binary output between parallel environments
COVERAGE_FILE=.coverage.{envname}
DISABLE_GLOBAL_HANDLERS=1
BRANCH_NAME={env:BRANCH_NAME:}
COVERAGE_FILE={envdir}/coverage
DB_ENGINE=django.db.backends.postgresql_psycopg2
SETUPTOOLS_USE_DISTUTILS=stdlib
JUNIT=--junitxml=junit-{envname}.xml
JUNIT=--junitxml=junit-{envname}.xml
COVERAGE=--cov=hobo/ --cov-config .coveragerc --cov-report= --cov-context=test --cov-branch
hobo: DJANGO_SETTINGS_MODULE=hobo.settings
hobo: HOBO_SETTINGS_FILE=tests/settings.py
schemas: DJANGO_SETTINGS_MODULE=hobo.settings
@ -32,8 +36,13 @@ setenv =
passerelle: DEBIAN_CONFIG_COMMON=debian/debian_config_common.py
passerelle: PASSERELLE_SETTINGS_FILE=tests_passerelle/settings.py
passerelle: DJANGO_SETTINGS_MODULE=passerelle.settings
coverage: COVERAGE=--cov-report xml:coverage-{envname}.xml --cov-report html:htmlcov-{envname} --cov=hobo/ --cov-config .coveragerc
fast: NOMIGRATIONS=--nomigrations
# test directories
hobo: TEST_DIRECTORY=tests/
schemas: TEST_DIRECTORY=tests_schemas/
multitenant: TEST_DIRECTORY=tests_multitenant/
multipublik: TEST_DIRECTORY=tests_multipublik/
authentic: TEST_DIRECTORY=tests_authentic/
passerelle: TEST_DIRECTORY=tests_passerelle/
deps:
drf39: djangorestframework>=3.9.2,<3.10
drf312: djangorestframework>=3.12,<3.13
@ -69,21 +78,36 @@ deps:
Pillow
black: pre-commit
git+https://git.entrouvert.org/publik-django-templatetags.git
allowlist_externals =
./getlasso3.sh
commands =
./getlasso3.sh
hobo: py.test {env:JUNIT:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests/}
schemas: py.test {env:JUNIT:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests_schemas/}
multitenant: py.test {env:JUNIT:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests_multitenant/}
multipublik: py.test {env:JUNIT:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests_multipublik/}
authentic: py.test {env:JUNIT:} {env:FAST:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests_authentic/}
passerelle: py.test {env:JUNIT:} {env:COVERAGE:} {env:NOMIGRATIONS:} {posargs:tests_passerelle/}
black: pre-commit run black --all-files --show-diff-on-failure
py.test {posargs:{tty::{env:JUNIT:}} {tty::{env:COVERAGE:}} {env:TEST_DIRECTORY:}}
[testenv:code-style]
basepython = python3
skip_install = true
deps =
pre-commit
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:update-locales]
setenv =
DJANGO_SETTINGS_MODULE=hobo.settings
deps =
allowlist_externals =
./getlasso3.sh
commands =
./getlasso3.sh
./manage.py makemessages --add-location=file
./manage.py compilemessages
[testenv:coverage-report]
setenv =
deps =
coverage
commands =
python3 -m coverage erase --data-file=.coverage
python3 -m coverage combine
python3 -m coverage html -d htmlcov --show-contexts
python3 -m coverage xml