Continuous integration with Jenkins.

33
Continuous Integration With Евгений Л. email: [email protected] @beeprobot

Transcript of Continuous integration with Jenkins.

Page 1: Continuous integration with Jenkins.

Continuous Integration With 

Евгений Л.email: [email protected]@beeprobot

Page 2: Continuous integration with Jenkins.

- Что такое CI.- Нет холиварам.- Как подключить ?

Не будет.

Page 3: Continuous integration with Jenkins.

- Что такое Jenkins ?- Организация работы с CI.- Наболевшее.

Будет.

Page 4: Continuous integration with Jenkins.

Kohsuke Kawaguchi

Немного истории.

Page 5: Continuous integration with Jenkins.

Hudson

Hudson

Jenkins

Немного истории.

Page 6: Continuous integration with Jenkins.

http://www.wakaleo.com/resources/polls

Немного статистики.

Page 7: Continuous integration with Jenkins.

Немного статистики.

Page 8: Continuous integration with Jenkins.

Релизы.

1.408 (2011/04/18)1.407 (2011/04/15)1.406 (2011/04/11)1.405 (2011/04/04)1.404 (2011/03/27)1.403 (2011/03/20)

http://jenkins-ci.org/changelog

Page 9: Continuous integration with Jenkins.

252 Проектов http://ci.jenkins-ci.org/

Картинка главной страницы.

Стабильность Дженкинса ?

Page 10: Continuous integration with Jenkins.

Полезные метрики.

- Checkstyle Trend (PHP_CodeSniffer)

- Duplicate Code Trend (phpcpd)

- PMD Trend(PHP_PMD)

- Code Coverage (PHP_CodeCoverage)

Page 11: Continuous integration with Jenkins.

Уведомления.

Page 12: Continuous integration with Jenkins.

Наболевшее.

Page 13: Continuous integration with Jenkins.

Метрики на наших проектах.

Page 14: Continuous integration with Jenkins.

Метрики на наших проектах.

Page 15: Continuous integration with Jenkins.

Метрики на наших проектах.

Page 16: Continuous integration with Jenkins.

Бесполезно.

Page 17: Continuous integration with Jenkins.

Разбитые окна.

Page 18: Continuous integration with Jenkins.

Почему ?

- Нет времени разбираться.- Сложно вычищать.- Сложно поддерживать чистоту.- У меня и так всё работает.- etc

Page 19: Continuous integration with Jenkins.

Сложно ?

http://ci.jenkins-ci.org/ Jenkins » Jenkins core » jenkins_main_trunk

Page 20: Continuous integration with Jenkins.

Сложно ?

http://ci.jenkins-ci.org/ Jenkins » Jenkins core » jenkins_main_trunk

Page 21: Continuous integration with Jenkins.

Сложно ?

http://ci.jenkins-ci.org/ Jenkins » Jenkins core » jenkins_main_trunk

Page 22: Continuous integration with Jenkins.

Сложно ?

http://ci.jenkins-ci.org/ Jenkins » Jenkins core » jenkins_main_trunk

Page 23: Continuous integration with Jenkins.

Ругается на всякую фигню.

- Исправлять.- Настраивать.- В крайнем случае вставлять хаки.

Page 24: Continuous integration with Jenkins.

Ругается на всякую фигню.

- Исправлять.- Настраивать.- В крайнем случае вставлять хаки.

А может всё это и не надо ?

Page 25: Continuous integration with Jenkins.

.....

public function ... () {

}

Avoid really long methods..

Violations of this rule usually indicate that the method is doing too much. Try to reduce the method size by creating helper methods and removing any copy/pasted code.

Page 26: Continuous integration with Jenkins.

Мартин Фаулер

Звёзды в шоке.

Page 27: Continuous integration with Jenkins.

Мартин Фаулер

Кент Бек

Звёзды в шоке.

Page 28: Continuous integration with Jenkins.

Мартин Фаулер

Кент Бек

Роберт Мартин

Звёзды в шоке.

Page 29: Continuous integration with Jenkins.

И что же делать ?

- Потратить несколько человеко-дней и всё вычистить.

- Включить в критерии готовности задачи, +0 Checkstyle, +0 PMD etc.

- Ничего не делать.

Page 30: Continuous integration with Jenkins.

http://www.wakaleo.com/download-ci-with-hudson

Continuous Integration With Hudson

Что почитать ?

http://jenkins-php.org/

https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+and+PHP

Page 31: Continuous integration with Jenkins.

Что ещё почитать ?

С. Макконнелл Совершенный код

Роберт Мартин Чистый код. Создание, анализ и рефакторинг

Page 32: Continuous integration with Jenkins.

Качество - это делать что-либо правильно, даже когда никто не смотрит. 

Генри Форд

Page 33: Continuous integration with Jenkins.

Евгений Л.email: [email protected]@beeprobot