pipeline { agent none stages { stage('Build') { agent { docker { image 'python:2-alpine' } } steps { sh 'python -m py_compile sources/add2vals.py sources/calc.py' stash(name: 'compiled-results', includes: 'sources/*.py') } } stage('Test') { agent { docker { image 'python:2-alpine' } } steps { sh 'py.test --verbose --junit-xml test-reports/results.xml sources/test_calc.py' } post { always { junit 'test-reports/results.xml' } } } stage('Deliver') { agent { docker { image 'python:2-alpine' } } steps { sh 'pyinstaller --onefile sources/add2vals.py' } post { success { archiveArtifacts 'dist/add2vals' } } } } }