Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 1 addition & 59 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,63 +21,5 @@ pipeline {
stash(name: 'compiled-results', includes: 'sources/*.py*')
}
}
stage('Test') {
agent {
docker {
//This image parameter downloads the qnib:pytest Docker image and runs this image as a
//separate container. The pytest container becomes the agent that Jenkins uses to run the Test
//stage of your Pipeline project.
image 'qnib/pytest'
}
}
steps {
//This sh step executes pytest’s py.test command on sources/test_calc.py, which runs a set of
//unit tests (defined in test_calc.py) on the "calc" library’s add2 function.
//The --junit-xml test-reports/results.xml option makes py.test generate a JUnit XML report,
//which is saved to test-reports/results.xml
sh 'py.test --verbose --junit-xml test-reports/results.xml sources/test_calc.py'
}
post {
always {
//This junit step archives the JUnit XML report (generated by the py.test command above) and
//exposes the results through the Jenkins interface.
//The post section’s always condition that contains this junit step ensures that the step is
//always executed at the completion of the Test stage, regardless of the stage’s outcome.
junit 'test-reports/results.xml'
}
}
}
stage('Deliver') {
agent any
//This environment block defines two variables which will be used later in the 'Deliver' stage.
environment {
VOLUME = '$(pwd)/sources:/src'
IMAGE = 'cdrx/pyinstaller-linux:python2'
}
steps {
//This dir step creates a new subdirectory named by the build number.
//The final program will be created in that directory by pyinstaller.
//BUILD_ID is one of the pre-defined Jenkins environment variables.
//This unstash step restores the Python source code and compiled byte
//code files (with .pyc extension) from the previously saved stash. image]
//and runs this image as a separate container.
dir(path: env.BUILD_ID) {
unstash(name: 'compiled-results')

//This sh step executes the pyinstaller command (in the PyInstaller container) on your simple Python application.
//This bundles your add2vals.py Python application into a single standalone executable file
//and outputs this file to the dist workspace directory (within the Jenkins home directory).
sh "docker run --rm -v ${VOLUME} ${IMAGE} 'pyinstaller -F add2vals.py'"
}
}
post {
success {
//This archiveArtifacts step archives the standalone executable file and exposes this file
//through the Jenkins interface.
archiveArtifacts "${env.BUILD_ID}/sources/dist/add2vals"
sh "docker run --rm -v ${VOLUME} ${IMAGE} 'rm -rf build dist'"
}
}
}
}

}