Continious Integration TulaDev.NET Развертывание  Continious Integration  при помощи CruiseControl.Net, NAnt, NUnit и Svn ...
А для чего оно мне? Тест Джоэла Спольски: 12 шагов к лучшему коду <ul><li>Вы используете систему контроля версий?
Можете ли вы собрать проект в один шаг?
Проводите ли вы ежедневные билды?
У вас есть база данных ошибок?
Исправляете ли вы ошибки до написания нового кода?
У вас есть актуальный график работ?
У вас есть спецификация?
У программистов тихие рабочие места?
Используете ли вы лучшие средства, какие только можно купить?
У вас есть тестеры?
Пишут ли кандидаты код во время собеседования?
Upcoming SlideShare
Loading in...5
×

Continous Integration

895

Published on

Continous Integration с применением CruiseControl.NET, NAnt и NUnit

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
895
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Презентация подготовлена с использованием OpenOffice.org Impress
  • Приятно то, что в Тесте Джоэла легко получить быстрый ответ да или нет на каждый вопрос. Вам не нужно выяснять число строк в день или среднее количество ошибок на точку перегиба. Дайте своей команде одно очко за каждый ответ «да». Главный недостаток теста в том, что его действительно не следует применять для оценки безопасности программного обеспечения ядерных электростанций. Оценка 12 — превосходно, 11 — терпимо, но 10 или ниже означает, что у вас серьезные проблемы. Правда состоит в том, что большинство организаций живут с оценкой 2 или 3, и поэтому им нужна серьёзная помощь, потому что такие компании, как Microsoft, имеют 12 постоянно. Конечно, это не все факторы, которые определяют успех или неудачу. В частности, если у вас великолепная команда, работающая на продуктом, который никому не нужен, ну... люди и не захотят его. И в то же время можно представить себе команду «головорезов», которые не делают ничего из вышеперечисленного, и при этом умудряются производить удивительное программное обеспечение, способное изменить мир. Но, при прочих равных, если у вас есть эти 12 пунктов — значит, у вас есть дисциплинированная команда, которая может воспроизводимо достигать результата.
  • Что нам это дает? Во-первых – в любой момент времени мы имеем достоверную информацию о состоянии исходников в системе. Если последний билд был неудачным («упал»), значит брать свежую версию из сорц-контрола нельзя – он может даже не компилится, а если зелёненький, удачный – значит все отлично. Во-вторых – очень просто найти виновника «торжества» — скорее всего, это последний коммитер – он то и будет отвечать за «ремонт». Кстати, в подобной среде задачей высочайшего приоритета является исправление билда. Если на проекте используется unit testing, их прогонка при каждом билде дает некоторую гарантию отсутствия регрессионных багов (когда в одном месте починили, а в другом отвалилось). Также можно включить в билд различные метрики качества кода, как-то покрытие, статический анализ, поиск дублированного кода, и т.д., автоматизировать установку на тестовую машину и тому подобные полезные и не очень вещи. Также часто принимают за правило, что если разработчик сломал билд – он не покидает рабочее место, пока билд снова не станет зеленым.
  • Также следует упомянуть, что в сравнении с Windows Server 2003 в Windows 7 появились некоторые особенности настроек тех или иных компонентов CI, в остальном процесс аналогичен. Таким образом, используемый нами подход позволит без особого труда применить его и на другие операционные системы
  • Если в целевой операционной системе не установлен IIS – установить его, причем в Windows 7 надо надо еще выполнить пару действий: 1. Сделать виртуальную папку приложением 2. Intenet Information Services + World Wide Web Services + + Application Development Features + + [x] .NET Extensibility + + [x] ASP + + [x] ASP.NET + + [x] CGI + + [x] ASAPI Extensions + + [x] ASAPI Filters + + [x] Server Side Includes 3. запустить c:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\aspnet_regiis.exe 4. Дописать в add apppool параметр /managedRuntimeVersion:&amp;quot;v4.0&amp;quot;
  • Во время установки на Windows 7 виртуальная директория для веб-части не создается, несмотря на галочку в визарде. Ее нужно создать самому, выбрав опцию AddApplication в IIS. Application pool должен быть “Classic”, название папки – ccnet Также надо убедиться, что для выбранного пула установлен asp.net 2.0. А если будет ошибка с поврежденным ManagedPipelineHandler у CCNetHttpHandler, то поправить конфиг дашборда: добавить preCondition=&amp;quot;integratedMode&amp;quot; в каждый &lt;system.webServer&gt; ... &lt;handlers&gt; &lt;add … preCondition=&amp;quot;integratedMode&amp;quot;/&gt;
  • Continous Integration

    1. 1. Continious Integration TulaDev.NET Развертывание Continious Integration при помощи CruiseControl.Net, NAnt, NUnit и Svn Виталий Луканин ООО “Смартек” Senior C# Developer [email_address] http://www.smartru.com
    2. 2. А для чего оно мне? Тест Джоэла Спольски: 12 шагов к лучшему коду <ul><li>Вы используете систему контроля версий?
    3. 3. Можете ли вы собрать проект в один шаг?
    4. 4. Проводите ли вы ежедневные билды?
    5. 5. У вас есть база данных ошибок?
    6. 6. Исправляете ли вы ошибки до написания нового кода?
    7. 7. У вас есть актуальный график работ?
    8. 8. У вас есть спецификация?
    9. 9. У программистов тихие рабочие места?
    10. 10. Используете ли вы лучшие средства, какие только можно купить?
    11. 11. У вас есть тестеры?
    12. 12. Пишут ли кандидаты код во время собеседования?
    13. 13. Проводите ли вы коридорное тестирование удобства использования программ? </li></ul>
    14. 14. Continious Integration это... <ul>Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. На практике это приводит к тому, что есть некий механизм, который следит за вашим Source Control, и при появлении там изменений автоматически скачивает их, билдит, прогоняет тесты (конечно, если их пишут) и, возможно, выполняет какие-то другие действия. В случае же неудачи на одном их этапов, он дает об этом знать всем заинтересованным лицам, в первую очередь – последнему коммитеру. </ul>
    15. 15. И что же для этого нужно? <ul>Мы рассмотрим лишь один из возможных вариантов организации процесса разработки в команде, позволяющий значительно сократить время и трудоемкость работы. И для этого нам понадобятся: <li>Windows 7 (с установленным IIS)
    16. 16. Visual Studio 2008 или 2010
    17. 17. SVN
    18. 18. NUnit
    19. 19. Nant
    20. 20. Cruise Control.NET </li></ul>
    21. 21. <ul>Windows 7 (с установленным IIS) </ul><ul>Windows 7 в качестве операционной системы была выбрана по целому ряду причин: </ul><ul><li>Эта операционная система установлена у автора доклада. </li></ul>
    22. 22. <ul>Visual Studio 2008 или 2010 </ul>Визуальная среда разработки нужна не только для разработки кода на машине разработчика, но и для автоматизированной сборки Deployment проектов на билд-сервере.
    23. 23. <ul>SVN </ul>Subversion (также известная как «SVN») — свободно распространяемая централизованная система управления версиями. Существует несколько наиболее популярных видов систем управления сорцами, к которым относятся CVS, SVN, VSS и др. В данном случае будет использоваться Visual SVN Server, т. к. его достаточно просто настроить, а также он тесно интергирован с Cruise Control. NET p.s. английское cлово subversion можно перевести двояко — как «свержение» (subversion) и как «подверсия» (sub-version)
    24. 24. <ul>NUnit </ul>NUnit — это открытая среда юнит-тестирования приложений для .NET, которая легко интегрируется как с Visual Studio, так и с CruiseControl.
    25. 25. NAnt NAnt — это свободно распространяемое (open source) ПО для автоматизации процесса сборки ПО. NAnt очень похож Apache Ant, но ориентирован на работу с .NET, а не Java, вследствие чего требует требует наличия одной из версий .NET Framework.
    26. 26. Предлагаемая стратегия сборки Для автоматизации процесса сборки, предположим, что она должна осуществляться по следующему алгоритму: 1. Подменить *.config файл в веб приложении 2. Собрать проект 3. Запустить тесты 4. Создать *.bat файл для деплоймента веб приложения в IIS, а также установки сервиса. 5. Если environment=='QA', будем архивировать бинарники сервиса и копировать их в папку «C:build» (на месте бинарников сервиса могут быть инсталляторы реального приложения)
    27. 27. Cruise Control.NET Cruise Control.NET – это фреймворк, предназначенный для обеспечения непрерывной интеграции. Нас интересуют два инсталлятора: <ul><li>Cruise Control.NET - серверная часть, это сам сервис, обеспечивающий периодическое выполнение тасков, и веб-интерфейс, позволяющий просмотреть результаты любого из запусков
    28. 28. CruiseControl.NET-CCTray – клиентская тулза, которая с любой из машин клиента позволяет просмотреть текущее состояние серверной стороны или обратиться к описанному выше веб-интерфейсу </li></ul>
    29. 29. Больше информации <ul><li>Подробнее про 12 шагов Джоэла:
    30. 30. http://local.joelonsoftware.com/wiki/%D0%A2%D0%B5%D1%81%D1%82_%D0%94%D0%B6%D0%BE%D1%8D%D0%BB%D0%B0:_12_%D1%88%D0%B0%D0%B3%D0%BE%D0%B2_%D0%BA_%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BC%D1%83_%D0%BA%D0%BE%D0%B4%D1%83
    31. 31. Пошаговое руководство по настройке CI:
    32. 32. http://ilmatte.wordpress.com/2008/06/01/cruisecontrolnet-tutorial-part-1/
    33. 33. Сайт разработчиков утилиты NAnt:
    34. 34. http://nant.sourceforge.net/
    35. 35. Сайт проекта NUnit:
    36. 36. http://www.nunit.org/
    37. 37. Подробнее про работу с IIS из командной строки:
    38. 38. http://mvolo.com/blogs/serverside/archive/2007/07/12/Creating-IIS7-sites_2C00_-applications_2C00_-and-virtual-directories.aspx </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×