Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jenkins CI in Action

Jenkins CI in Action

What Jenkins is and how to integrate with Gerrit code review tool.

Avatar for Mikhail S. Pobolovets

Mikhail S. Pobolovets

May 25, 2013

Other Decks in Programming

Transcript

  1. Foreword • Senior Ruby developer/Team lead at Altoros Systems •

    Ruby developer since 2007 • Haskell and Erlang enthusiast • https://github.com/styx
  2. What is CI? Continuous Integration is a software development practice

    where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. – Martin Fowler
  3. Who is Jenkins? • Written in Java, but thats not

    a problem • Platform with minimum functionality • Plugins support – Gerrit, Github, IRC, Jabber, Skype, Vagrant, Rake, LDAP – About 780 plugins • Distributed builds (Master – Slave)
  4. So why you might want Jenkins? • Bad commit? You

    will know about in 5 minutes • Code delivery is easier and faster • Automation of annoying tasks • No need to invent a wheel, you already have a platform • The biggest community among other CI products
  5. Workflows • With Gerrit trigger – Main workflow for Devs

    – New patch set / Draft published – Special comment posted – Special phrase in commit message to skip build • By schedule – Integration testing (nightly) • By dependency build – Special case if you have projects with shared code base
  6. Tweaks • GC tweaks • Parallel Tests https://github.com/grosser/parallel_tests • Pspec

    https://github.com/FUT/pspec • Skip part of the test suite if possible • Rubocop • Simple script to find out basic errors (debugger) • Brakeman