pipeline { agent any options { parallelsAlwaysFailFast() } stages { stage('BuildAndTest') { matrix { agent none axes { axis { name 'PY_VERSION' values '3.6-alpine', '3.7-alpine', '3.8-alpine', '3.9-alpine' } } stages { stage('build') { agent { docker { image "python:$PY_VERSION" args '-e DJANGO_SETTINGS_MODULE="locallibrary.settings"'} } steps { sh 'python --version' } } stage('test') { agent { docker { image "python:$PY_VERSION" args '-e DJANGO_SETTINGS_MODULE="locallibrary.settings" -u 0:0'} } environment { PY_ENV = "/tmp/pitestenv" } steps { sh ''' apk --no-cache add --virtual build-dependencies libpq-dev gcc musl-dev python -m venv ${PY_ENV} source ${PY_ENV}/bin/activate export PATH=${PY_ENV}/bin:${PATH} pip install -U pip pip install -r requirements.txt python3 manage.py migrate python manage.py test python -m xmlrunner discover -p *_test.py ''' } } } } } } }