Your SlideShare is downloading. ×
Apache development with GitHub and Travis CI
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apache development with GitHub and Travis CI


Published on

Much of the recent innovation in development tooling has happened around Git-based cloud services like GitHub and Travis CI. While these services are not part of the official Apache infrastructure, …

Much of the recent innovation in development tooling has happened around Git-based cloud services like GitHub and Travis CI. While these services are not part of the official Apache infrastructure, it's still possible to use them to complement the tooling available to Apache projects. Based on experience from Apache Jackrabbit, this presentation shows how to leverage such external services while staying true to Apache principles and policies.

Published in: Software
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Apache development with GitHub and Travis CI
  • 2. GitHub “GitHub is the best place to share code with friends, co- workers, classmates, and complete strangers.”
  • 3. Travis CI “Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community”
  • 4. The Apache Software Foundation “The mission of the Apache Software Foundation (ASF) is to provide software for the public good. We do this by providing services and support for many for like- minded software project communities of individuals.”
  • 5. External services • Many free external services available for Apache projects • SVNsearch, FishEye 6, … • MarkMail, GMane, Nabble, … • IRCnet, Google Hangouts, Skype, … • Twitter, Facebook, Stack Overflow, Ohloh, … • Complement and extend the services provided by the ASF • Remember: • Canonical source and releases on Apache hardware • Important decisions on the Apache mailing lists or issue trackers • Avoid splintering the community
  • 6. GitHub
  • 7. Git at Apache • Writable Git repositories as an alternative to Subversion • • Read-only Git mirrors as a complement to Subversion • • git svn dcommit allows committing to svn from a git clone • Both types of repositories are mirrored to GitHub • • GitHub supports also Subversion checkouts •
  • 8. Apache at GitHub
  • 9. Committers team Want to link your GitHub account to the Apache organization? (Does not grant any extra permissions; just a way to display affiliation.) See instructions at
  • 10. Jackrabbit Oak at GitHub
  • 11. Personal fork
  • 12. Temporary branches
  • 13. Setting up git-svn $ git clone $ cd jackrabbit-oak $ git remote add fork $ git svn init --prefix=origin/ -s $ git svn rebase Before first use: $ git config --global „Jukka Zitting‟ $ git config --global „‟ $ curl > $HOME/.gitauthors $ git config --global svn.authorsfile $HOME/.gitauthors
  • 14. Travis CI
  • 15. Setting up a Travis build • Requirements • A .travis.yml configuration file • Travis web hook enabled in the GitHub mirror • Once in place, Travis will automatically • detect when there are new changes • start a clean virtual machine based on your configuration • runs any configured setup tasks • runs the configured integration build • records the result of the build and send configured notifications • Also pull requests will get built!
  • 16. Limitations • Build time currently limited to 50 minutes • parts of a matrix build can each have their own time limit • consider the other users of the system • Limited network access • can download dependencies from big repositories like Maven • only few options for deploying successful build artifacts • Tricky email notifications • VERP makes them incompatible with Apache mailing lists
  • 17. Example configuration # see install: true script: mvn verify -Ppedantic,integrationTesting language: java jdk: - oraclejdk7 services: mongodb notifications: email: false webhooks: urls: on_success: change on_failure: change
  • 18. Questions?