Continuous Integration @ MeetMagento Germany 2015

Preview:

Citation preview

Continuous Integration

2015, Leipzig

Aleksey Razbakov

Our Team�

How to give �to old big projects

second life?

Why?

Step by Step Guide �to Implement�Continuous Integration�in a Web Agency?

How to start?

Acceptance

Acceptance

Basics 1 2 3 4 5

Basics

How to create builds?

Basics 1 2 3 4 5

Jenkins is a �Simple Scheduler

Basics 1 2 3 4 5

Jenkins Job

Basics 1 2 3 4 5

Jenkins Job

Basics 1 2 3 4 5

Phing

Basics 1 2 3 4 5

Basics 1 2 3 4 5

Where to store files?

Basics 1 2 3 4 5

Basics 1 2 3 4 5

Where to store �the database?

3

Phing: Nightly Backup

Basics 1 2 3 4 5

Phing: Nightly Backup

Basics 1 2 3 4 5

Phing: Build Anywhere

Basics 1 2 3 4 5

Phing: Log Monitoring

Basics 1 2 3 4 5

Basics 1 2 3 4 5

Do we need an Integration Server?

Basics 1 2 3 4 5

Basics 1 2 3 4 5

What are the benefits so far?

Build anywhere

Fast, easy and reproducible release

Have backups every night

Monitor server

Basics 1 2 3 4 5

Continuous Integration

Basics 1 2 3 4 5

Basics 1 2 3 4 5

Advanced 1 2 3 4 5

Advanced

Advanced 1 2 3 4 5

Improve the Code?

Coding Standards

Advanced 1 2 3 4 5

Advanced 1 2 3 4

Will anyone follow it?

5

Code Review

Advanced 1 2 3 4 5

Automated Tests

Advanced 1 2 3 4 5

Advanced 1 2 3 4 5

Is there a way to get �less bugs?

Use maintainable modules

Advanced 1 2 3 4 5

Automated Tests

Advanced 1 2 3 4 5

Composer to link �everything together

Advanced 1 2 3 4 5

Advanced 1 2 3 4 5

It takes time to �configure it on �

every developer PC, doesn’t it?

Advanced 1 2 3 4 5

Vagrantfile

Advanced 1 2 3 4 5

Vagrant bootstrap

Advanced 1 2 3 4 5

Advanced 1 2 3 4 5

How to organize �the process?

Kanban Board

Advanced 1 2 3 4 5

The benefits?

Readable and maintainable code

Find and fix issues faster

Release updates to multiple projects easier and faster

Pac-Man or Robot?

razbakov

Vagrant Development Box

Phing Builder

Aleksey Razbakov

Recommended