Skip to content

Instantly share code, notes, and snippets.

@pdurbin
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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>
<html>
<head>
<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(http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(http://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono:400,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; }
</style>
</head>
<body>
<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"/>
2015-06-03
.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"/>
https://build.hmdc.harvard.edu:8443
---
# 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"/>
https://travis-ci.org/IQSS
---
# Pull Request for .travis.yml
<img src="rliebz.png" width="600px"/>
---
# Travis Build History
<img src="travis-build-history.png" width="500px"/>
https://travis-ci.org/IQSS/dataverse/builds
---
# Travis Testing Multiple Python Versions
<img src="travis-dataverse-python.png" width="500px"/>
https://travis-ci.org/IQSS/dataverse-client-python
---
# Travis with Multiple Test Suites
<img src="travis-test-suites.png" width="500px"/>
https://travis-ci.org/openscholar/openscholar/builds/63203391
---
# Travis Integration Testing
<img src="travis-behat.png" width="400px"/>
https://travis-ci.org/openscholar/openscholar/jobs/63203392
---
# IQSS Projects using Jenkins or Travis
- Dataverse
- Consilience
- Zelig
- DataTags
- RCE
- OpenScholar
---
# What Problems Do You Have?
- Will merging this pull request break my app?
- How do I deploy my app to production?
- i.e. http://tb.datascience.iq.harvard.edu
- 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?
- http://docs.zeligproject.org
- 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
- http://sauceio.com/index.php/2012/12/announcing-open-sauce-free-unlimited-testing-accounts-for-oss-projects/
- Distributed Jenkins builds
- https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
- local Jenkins per server for more control
- no need for "Command_Line" job
</textarea>
<script src="http://gnab.github.io/remark/downloads/remark-latest.min.js" type="text/javascript">
</script>
<script type="text/javascript">
var slideshow = remark.create();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment