SlideShare a Scribd company logo
1 of 10
Continuous Integration
при разработке мобильных и веб-
проектов
Максимов Антон, CTO Heads&Hands
Что такое непрерывная интеграция
Сложно:
Непрерывная интеграция (англ. Continuous Integration) - практика разработки ПО, при котором
осуществляется автоматизированная сборка продуктов для выявления интеграционных
проблем.
Просто:
Непрерывная интеграция - сборка проекта в один клик.
Существующие решения
● Hudson
● CruiseControl
● TeamCity
● FastBuilder
Цель:
Создать систему для сборки проектов под различные платформы (web + mobile). С
возможностью непрерывного тестирования.
Используемое нами решение
Hudson + Git + Publisher (Python + Django)
Hudson - опрос репозиториев, выполнение сборки
Git - хранения исходного кода и сборок
Publisher - внутренний web-портал для доступа к сборкам и получение информации о них
Основные функции созданного решения
Git
- хранит исходный код
- хранит последовательность сборок
Publisher:
- Права пользователей на доступ к сборкам
- Информация о сборках
- Возможность скачать, запустить, протестировать сборки
Последовательность сборки
Сборка проектов различных типов
Сборка iOS Сборка Android Сборка Web
Сборка xCode проекта
xcodebuild
Обновления ant сценария
для библиотек и проекта
android update project
Архивация проекта в zip
архив
Подписывание
приложения
с помощью xcrun
Запуск ant сценариев
ant debug
Обновление ipa файла Обновление apk файла Обновление zip файла
Публикатор сборки
- Авторизация пользователей
- Обновление ссылок на сборки по запросу из Hudson'а
- Генерация сертификата установки (*.plist) для iOS проекта
- Генерация ссылки для web проекта
Установка iOS приложения in-House
Генерируемый автоматически plist файл:
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://server/distribs/prokectname.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>ru.handh.projectname</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>ProjectName</string>
</dict>
</dict>
</array>
</dict>
</plist>
Установка по ссылке вида:
itms-services://?action=download-manifest&url=http://server/project.plist
Демонстрация работы
Спасибо за внимание!
Используемые источники:
1) http://developer.apple.com/ (in-House app)
2) http://stackoverflow.com
3) http://habrahabr.ru/post/82724/ (Непрерывная интеграция)
4) http://habrahabr.ru/post/150094/ (Принципы работы сервиса TestFlight)
5) http://ru.wikipedia.org/wiki/Непрерывная_интеграция
6) http://hudson-ci.org/

More Related Content

What's hot

Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Talks&Works
 
Continuous integration, или как мы подружили front end и back-end
Continuous integration,  или как мы подружили  front end и back-endContinuous integration,  или как мы подружили  front end и back-end
Continuous integration, или как мы подружили front end и back-endwlbl
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Ontico
 
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский..."IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...Yandex
 
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС «Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС DevDay
 
Vlad Shimkovich "How to: efficient development with Rider IDE"
Vlad Shimkovich "How to: efficient development with Rider IDE"Vlad Shimkovich "How to: efficient development with Rider IDE"
Vlad Shimkovich "How to: efficient development with Rider IDE"Lviv Startup Club
 
Unity Editor Extensions for project automatization
Unity Editor Extensions for project automatizationUnity Editor Extensions for project automatization
Unity Editor Extensions for project automatizationDevGAMM Conference
 
UI Kit and design developig workflow
UI Kit and design developig workflowUI Kit and design developig workflow
UI Kit and design developig workflowArtem Molokov
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...DrupalCamp MSK
 
Терминал видеоконференций высокой четкости IntegrIT VitaHD
Терминал видеоконференций высокой четкости IntegrIT VitaHDТерминал видеоконференций высокой четкости IntegrIT VitaHD
Терминал видеоконференций высокой четкости IntegrIT VitaHDDmitry Paroshin
 
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...DevGAMM Conference
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...MoscowJS
 
Доклад не про React
Доклад не про ReactДоклад не про React
Доклад не про ReactAnton Winogradov
 
Учиться программировать дорого? Нет, бесплатно!
Учиться программировать дорого? Нет, бесплатно!Учиться программировать дорого? Нет, бесплатно!
Учиться программировать дорого? Нет, бесплатно!Alexander Babich
 

What's hot (17)

Web&java. gwt
Web&java. gwtWeb&java. gwt
Web&java. gwt
 
ShareKit. Evernote Dev Meetup
ShareKit. Evernote Dev MeetupShareKit. Evernote Dev Meetup
ShareKit. Evernote Dev Meetup
 
Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)Continuous Integration(как мы подружили frontend и backend)
Continuous Integration(как мы подружили frontend и backend)
 
Continuous integration, или как мы подружили front end и back-end
Continuous integration,  или как мы подружили  front end и back-endContinuous integration,  или как мы подружили  front end и back-end
Continuous integration, или как мы подружили front end и back-end
 
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
 
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский..."IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
 
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС «Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
 
Vlad Shimkovich "How to: efficient development with Rider IDE"
Vlad Shimkovich "How to: efficient development with Rider IDE"Vlad Shimkovich "How to: efficient development with Rider IDE"
Vlad Shimkovich "How to: efficient development with Rider IDE"
 
Unity Editor Extensions for project automatization
Unity Editor Extensions for project automatizationUnity Editor Extensions for project automatization
Unity Editor Extensions for project automatization
 
UI Kit and design developig workflow
UI Kit and design developig workflowUI Kit and design developig workflow
UI Kit and design developig workflow
 
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
 
Терминал видеоконференций высокой четкости IntegrIT VitaHD
Терминал видеоконференций высокой четкости IntegrIT VitaHDТерминал видеоконференций высокой четкости IntegrIT VitaHD
Терминал видеоконференций высокой четкости IntegrIT VitaHD
 
2D in Unity3D
2D in Unity3D2D in Unity3D
2D in Unity3D
 
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
Code Sharing - Как мы пришли к Unity Package Manager / Станислав Коротаев (Ba...
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
Доклад не про React
Доклад не про ReactДоклад не про React
Доклад не про React
 
Учиться программировать дорого? Нет, бесплатно!
Учиться программировать дорого? Нет, бесплатно!Учиться программировать дорого? Нет, бесплатно!
Учиться программировать дорого? Нет, бесплатно!
 

Similar to Continuous Integration в мобильной разработке

1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...borovoystudio
 
Continous Integration
Continous IntegrationContinous Integration
Continous IntegrationGetDev.NET
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Cyber Bionics #iotconfua
Cyber Bionics #iotconfuaCyber Bionics #iotconfua
Cyber Bionics #iotconfuaAndy Shutka
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.Igor Shkulipa
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...CEE-SEC(R)
 
Plugin development for intelli j platform
Plugin development for intelli j platformPlugin development for intelli j platform
Plugin development for intelli j platformchashnikov
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Microsoft reConnect
Microsoft reConnect Microsoft reConnect
Microsoft reConnect Microsoft
 

Similar to Continuous Integration в мобильной разработке (20)

1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
1С-Битрикс: Управление сайтом. Платформа для создания и управления корпоратив...
 
Continous Integration
Continous IntegrationContinous Integration
Continous Integration
 
Начало работы с Git (версия 2016)
Начало работы с Git (версия 2016)Начало работы с Git (версия 2016)
Начало работы с Git (версия 2016)
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Cyber Bionics #iotconfua
Cyber Bionics #iotconfuaCyber Bionics #iotconfua
Cyber Bionics #iotconfua
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
 
C# Web. Занятие 14.
C# Web. Занятие 14.C# Web. Занятие 14.
C# Web. Занятие 14.
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Plugin development for intelli j platform
Plugin development for intelli j platformPlugin development for intelli j platform
Plugin development for intelli j platform
 
Mobile credentials
Mobile credentialsMobile credentials
Mobile credentials
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Microsoft reConnect
Microsoft reConnect Microsoft reConnect
Microsoft reConnect
 
Sef2009
Sef2009Sef2009
Sef2009
 
Appery.io Ukraine_2016
Appery.io Ukraine_2016Appery.io Ukraine_2016
Appery.io Ukraine_2016
 

Continuous Integration в мобильной разработке

  • 1. Continuous Integration при разработке мобильных и веб- проектов Максимов Антон, CTO Heads&Hands
  • 2. Что такое непрерывная интеграция Сложно: Непрерывная интеграция (англ. Continuous Integration) - практика разработки ПО, при котором осуществляется автоматизированная сборка продуктов для выявления интеграционных проблем. Просто: Непрерывная интеграция - сборка проекта в один клик.
  • 3. Существующие решения ● Hudson ● CruiseControl ● TeamCity ● FastBuilder Цель: Создать систему для сборки проектов под различные платформы (web + mobile). С возможностью непрерывного тестирования. Используемое нами решение Hudson + Git + Publisher (Python + Django) Hudson - опрос репозиториев, выполнение сборки Git - хранения исходного кода и сборок Publisher - внутренний web-портал для доступа к сборкам и получение информации о них
  • 4. Основные функции созданного решения Git - хранит исходный код - хранит последовательность сборок Publisher: - Права пользователей на доступ к сборкам - Информация о сборках - Возможность скачать, запустить, протестировать сборки
  • 6. Сборка проектов различных типов Сборка iOS Сборка Android Сборка Web Сборка xCode проекта xcodebuild Обновления ant сценария для библиотек и проекта android update project Архивация проекта в zip архив Подписывание приложения с помощью xcrun Запуск ant сценариев ant debug Обновление ipa файла Обновление apk файла Обновление zip файла
  • 7. Публикатор сборки - Авторизация пользователей - Обновление ссылок на сборки по запросу из Hudson'а - Генерация сертификата установки (*.plist) для iOS проекта - Генерация ссылки для web проекта
  • 8. Установка iOS приложения in-House Генерируемый автоматически plist файл: <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://server/distribs/prokectname.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>ru.handh.projectname</string> <key>bundle-version</key> <string>1.0</string> <key>kind</key> <string>software</string> <key>title</key> <string>ProjectName</string> </dict> </dict> </array> </dict> </plist> Установка по ссылке вида: itms-services://?action=download-manifest&url=http://server/project.plist
  • 10. Спасибо за внимание! Используемые источники: 1) http://developer.apple.com/ (in-House app) 2) http://stackoverflow.com 3) http://habrahabr.ru/post/82724/ (Непрерывная интеграция) 4) http://habrahabr.ru/post/150094/ (Принципы работы сервиса TestFlight) 5) http://ru.wikipedia.org/wiki/Непрерывная_интеграция 6) http://hudson-ci.org/