Slide 1

Slide 1 text

Continuous Integration What, Why, How, When, Who

Slide 2

Slide 2 text

What ● Development methodology ● Continuous integration of new commits/branches to the main code base ● Automated builds ● Automated testing

Slide 3

Slide 3 text

Why ● Frequent merges reduce the number and the complexity of conflicts ● Developers are up to date with latest changes ● Bad code is spotted early on ○ coding standards ○ static analysis ● Stability (unit testing, code coverage, integration tests, etc.) ● Lower entry level for new developers ● Automation ○ Parallelization of development and testing ○ Effortless multi-platform testing

Slide 4

Slide 4 text

How ● Jenkins (FOSS) ● TravisCI ● CircleCI ● TeamCity ● Bamboo ● Gitlab CI ● ... https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software

Slide 5

Slide 5 text

When ● Before a commit ● Before a push ● After a push ● At a rebase (this is essentially the same as the before commit) ● On pull requests ● Based on a schedule (in theory this is not part of the CI, but who cares...) ● ...

Slide 6

Slide 6 text

Who The tools!!!

Slide 7

Slide 7 text

DOs ● Create new self-contained branches for each change ● Commit and push often ● Setup notifications for failed integrations ● Setup git hooks to fail early ● Fix issues on the spot ● Create and keep artifacts

Slide 8

Slide 8 text

DEMO