continuous integration with jenkins

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

Upload: robotbot

Post on 23-Jun-2015

2.705 views

Category:

Documents


2 download

TRANSCRIPT

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