52 lines
1.8 KiB
Groovy
52 lines
1.8 KiB
Groovy
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"'}
|
|
}
|
|
environment {
|
|
PY_ENV = "/tmp/pitestenv"
|
|
}
|
|
steps {
|
|
sh '''
|
|
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
|
|
xmlrunner discover -p *_test.py
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|