ci: make target for check-migrations / simplify Jenkinsfile and default targets

tox.ini:
* check-migrations is now in its own target
* getlasso.sh is removed as python2 is not supported anymore
* code-style/check-migrations/pylint are run after tests to not delay
  reporting of test failures.
Jenkinsfile:
* regular test run use the default target list from tox.ini
* on time trigger, only the rbac target is run
This commit is contained in:
Benjamin Dauvergne 2021-08-06 12:52:44 +02:00
parent 3fa72a15e3
commit c3f39b4637
2 changed files with 21 additions and 12 deletions

9
Jenkinsfile vendored
View File

@ -7,14 +7,13 @@ pipeline {
TMPDIR = "/tmp/${JOB_NAME.take(32)}-${BUILD_NUMBER}"
}
stages {
stage('Unit Tests (production environment)') {
when { not { triggeredBy 'TimerTrigger' } }
stage('Unit Tests (main targets)') {
steps {
sh "mkdir -p ${env.TMPDIR}"
sh """
python3 -m venv ${env.TMPDIR}/venv/
${env.TMPDIR}/venv/bin/pip install tox
PGPORT=`python -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 code-style,authentic-py3-dj22-drf39,pylint"""
PGPORT=`python -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"""
}
post {
always {
@ -28,7 +27,7 @@ PGPORT=`python -c 'import struct; import socket; s=socket.socket(); s.setsockopt
}
}
}
stage('Unit Tests (full)') {
stage('Unit Tests (rbac)') {
when { triggeredBy 'TimerTrigger' }
steps {
sh "mkdir -p ${env.TMPDIR}"
@ -36,7 +35,7 @@ PGPORT=`python -c 'import struct; import socket; s=socket.socket(); s.setsockopt
virtualenv -p python3 ${env.TMPDIR}/venv/
${env.TMPDIR}/venv/bin/pip install tox
PYTESTOPTIONS=--slow \
PGPORT=`python -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"""
PGPORT=`python -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 rbac-py3-dj22"""
}
post {
always {

24
tox.ini
View File

@ -6,15 +6,15 @@
[tox]
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/authentic/
envlist =
code-style
authentic-py3-dj22-drf39
code-style
[tox:jenkins]
envlist =
pylint
rbac-py3-dj22
authentic-py3-dj22-drf39
check-migrations
code-style
pylint
[testenv]
setenv =
@ -76,11 +76,21 @@ deps =
drf39: djangorestframework>=3.9.2,<3.10
usedevelop = True
commands =
py2: ./getlasso.sh
py3: ./getlasso3.sh
authentic: ./check-migrations.sh
./getlasso3.sh
rbac,authentic: py.test {env:PYTESTOPTIONS:} {env:FAST:} {env:REUSEDB:} {env:COVERAGE:} {env:JUNIT:} {env:SW:} {posargs:{env:TESTS} --random-group}
[testenv:check-migrations]
basepython = python3
usedevelop = True
setenv =
DJANGO_SETTINGS_MODULE=authentic2.settings
SETUPTOOLS_USE_DISTUTILS=stdlib
deps =
psycopg2-binary
commands =
./getlasso3.sh
./check-migrations.sh
[testenv:pylint]
basepython = python3
setenv =