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

Continuous Integration and Automation on Jenkins

Continuous Integration and Automation on Jenkins

Automate all the things!

Akhyar Amarullah

February 28, 2016
Tweet

More Decks by Akhyar Amarullah

Other Decks in Programming

Transcript

  1. 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. Martin Fowler
  2. Basic Jenkins functionalities Notice a change Check out source code

    Execute builds/tests Record and publish results Notify developers
  3. Jenkins Terminologies - Job - Workspace - Environment - Source

    VCS - Build Step - Post-Build Step - Artifact - Nodes - Master - Slave - Plugins
  4. Continuous Integration Best Practices Single Source Repository Commit often Make

    Your Build Self-Testing Automate the Build Build fast
  5. Jenkins Best Practice Separate master and slave nodes Label slave

    nodes based on available features Automate slave provisioning (e.g. Ansible, Docker) Notify developers on failed build (e.g. email, slack) Docker reduces app environment setup headaches a lot
  6. Automate code style review and approval Automate service deployment Automate

    APK/IPA deliveries to tester/end-users Automate scaling Automate the Jenkins itself Future Plan