Skip to content

Instantly share code, notes, and snippets.

Last active August 29, 2015 14:21
Show Gist options
  • Save pdurbin/03a76a26bd325af0b17e to your computer and use it in GitHub Desktop.
Save pdurbin/03a76a26bd325af0b17e to your computer and use it in GitHub Desktop.
Build Tools at IQSS
<!DOCTYPE html>
<title>2015-06-03 Build Tools at IQSS: Jenkins and Travis</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
@import url(;
@import url(,700,400italic);
@import url(,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
.remark-slide-content { font-size: 25px; }
.title h1 { font-size: 70px; }
.agenda { font-size: 26px; }
.footnote {
font-size: 15px;
position: absolute;
bottom: 1em;
left: 3em;
right: 1em;
.quote { font-size: 18px; }
<textarea id="source">
class: center, middle, title
# Build Tools at IQSS:
# Continuous Integration with
# Jenkins and Travis
<img src="jenkins-logo.png" width="200px"/>
<img src="iqss-logo.png" width="200px"/>
<img src="travis-logo.png" width="200px"/>
.left[Philip Durbin]
# What is a Build?
- uses code as a starting point (i.e. a git repo)
- compiles code (if necessary)
- runs tests
- may produce an artifact (i.e. jar, PDF, RPM, etc.)
- reports on status
<img src="build-success.png" width="600px"/>
# Jenkins Dashboard
<img src="jenkins-dashboard.png" width="650px"/>
# Jenkins for Deployment
<img src="apitest-deploy.png" width="800px"/>
Deploy webapps
# Jenkins for Integration Testing
<img src="apitest-test.png" width="800px"/>
Testing testing job triggered by successful deployment job.
# Jenkins Console Output
<img src="jenkins-console.png" width="800px"/>
# Jenkins Test Results
<img src="jenkins-test-results.png" width="800px"/>
# Jenkins Artifact
<img src="jenkins-artifact.png" width="800px"/>
# Travis CI
<img src="travis-logo.png" width="200px"/>
<img src="travis-dashboard.png" width="500px"/>
# Pull Request for .travis.yml
<img src="rliebz.png" width="600px"/>
# Travis Build History
<img src="travis-build-history.png" width="500px"/>
# Travis Testing Multiple Python Versions
<img src="travis-dataverse-python.png" width="500px"/>
# Travis with Multiple Test Suites
<img src="travis-test-suites.png" width="500px"/>
# Travis Integration Testing
<img src="travis-behat.png" width="400px"/>
# IQSS Projects using Jenkins or Travis
- Dataverse
- Consilience
- Zelig
- DataTags
- OpenScholar
# What Problems Do You Have?
- Will merging this pull request break my app?
- How do I deploy my app to production?
- i.e.
- Is my code quality getting better or worse?
- Is my test coverage getting better or worse?
- Can I automate this thing I do on my laptop?
- How reproducible is this build?
- Think twice about building it on your laptop!
- Weird stuff
- Did someone update the GitHub wiki?
# Future Possibilities
- Run Selenium tests on every build
- Distributed Jenkins builds
- local Jenkins per server for more control
- no need for "Command_Line" job
<script src="" type="text/javascript">
<script type="text/javascript">
var slideshow = remark.create();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment