Рубрика «continuous integration» - 12

image

Я помню то замечательное время, когда сборка релизной версии мобильного приложения сводилась к тому, что нужно было выставить debug = false и запустить экспорт apk-файла. Проходит 2 минуты, пока пыхтит IDE, и все готово. Все усилия сосредотачивались на необходимости указать данные сертификата подписи. Это было совсем недавно. Cейчас процесс сборки того самого приложения разросся настолько, что, если мне, вдруг, потребуется выполнить все операции самостоятельно, и даже если я все вспомню и проделаю безошибочно (во что я не верю), то это займет не час, который сегодня кажется непозволительно долгим, а, скорее всего, сутки, после чего терапевт обязан будет прописать мне больничный по усталости недели на две.

Итак, процесс сборки мобильного приложения. Попробую рассказать, из чего он у нас состоит — не потому, что в последнее время стало модным катать посты о CI той или иной мобильной команды (с покером, русалками и прочими обязательными атрибутами), а потому, что это отличный опыт, который я получил, работая над Почтой Mail.Ru для Android, и потому, что этой возможности, вероятнее всего, не было бы, работай я в другой команде, над другим проектом или в другой компании.
Читать полностью »

boxshell

ROTE — простая библиотека на языке C, служащая для эмуляции терминала VT100. Она создает терминал и предоставляет доступ к его состоянию в виде структуры языка C. В терминале можно запустить дочерний процесс, «нажимать» в нем клавиши и смотреть, что он рисует на терминале. Кроме того, есть функция для отрисовки состояния терминала в окне curses.

Зачем на практике может потребоваться эмулировать терминал и взаимодействовать через него с дочерним процессом? В первую очередь это нужно для автоматического тестирования программ, рисующих что-то на терминале с помощью curses, по моему мнению. Как иначе написать тесты для программы, которая ждёт, что пользователь нажмёт клавишу, и выводит результаты в определенное место экрана средствами curses?

Несмотря на всё удобство и внутреннюю красоту ROTE, использовать её напрямую в тестах было бы громоздко. Поэтому я решил упростить задачу, привязав ROTE к языку Lua, который я очень люблю и знаю, как писать тесты. Так и родилась библиотека lua-rote, о которой я хочу рассказать.
Читать полностью »

Предисловие

Побегав по Хабру, я на удивление не нашел ни одной статьи про полноценный team workflow с использованием различных магических причуд в духе Continuous Integration & Continuous delivery, различные интеграции Github — HipChat(Slack) — CI — Staging and Production via Continuous Delivery, и прочего, хотя я может просто искать не умею.

Semaphore App. Ruby on Rails. Continuous Integration-Delivery - 1

Но все же, мне захотелось поделиться своим, хоть и небольшим опытом работы, рассказать о различных плюшках, которые облегчают жизнь команде, работающей над одним проектом вместе, как это все можно объединить в одну отлаженную систему и сократить количество неприятных ощущений в нижней части спины во время работы над проектом.

Итак, под катом — разбор CI сервиса SemaphoreApp, немножко про интеграцию с другими сервисами и прочие радости, которые упрощают нам жизнь.
Читать полностью »

Эта статья продолжает цикл, начатый нашими друзьями из Лаборатории Касперского и описывает реальный опыт использования инструментов тестирования от Microsoft (и не только) с рекомендациями и выводами. Автор — инженер по тестированию, Игорь Щегловитов (ins4n3 на хабре). Наши статьи, посвященные тестированию, помечены тегом #mstesting.

В данной статье я хотел бы поделиться о своём первом опыте настройки процесса Continuous Integration c помощью популярной системы TeamCity, на виртуальной машине в Azure. Это хорошо тем, что у нас всегда будет доступна наша система с удобным доступом и контролем над ресурсами.

Настройка TeamCity в Azure — постоянно-доступная система для командной работы в облаке - 1
Читать полностью »

PHPCI обновился до версии 1.6 - 1

Система непрерывной интеграции PHPCI доросла до версии 1.6 (обзор, обновление до 1.3), и я хотел бы рассказать об изменениях, произошедших с версии 1.3.Читать полностью »

2 года назад в статье Continuous Delivery & Sitecore: наша реализация я представлял нашу систему автоматической доставки веб-приложений основанных на Sitecore. Это были первые маленькие шаги в направлении мира полной автоматизации.
Читать полностью »

С переходом на новый проект на Unity с относительно большой командой разработчиков резко встала необходимость автоматической сборки и доставки приложения на устройства для тестирования. Вот как с этим обстояла ситуация, когда я пришел на проект (под iOS):

  1. На отдельной mac-машине проект вручную выкачивался из репозитория (Asset Sever).
  2. Вручную (File->Build Settings->Build & Run) запускалась сборка в xCode-проект.
  3. Далее в xCode делался архив (Archive).
  4. Архив экспортировался в ipa-файл, который вручную загружался в TestFlight.
  5. Далее, уже в TestFlight доступ предоставлялся нужным тестерам.

Все описанное выше автоматизируется с помощью так называемой непрерывной интеграции (англ. Continuous Integration, CI). На моих предыдущих проектах для этих целей использовался TeamCity от JetBrains (создателей удобного инструмента рефакторинга кода Resharper). TeamCity (TC) — очень мощный программный продукт, выполняющий цели, поставленные перед системой непрерывной интеграции, на все 100%. Он умеет даже больше. Но речь в статье пойдет не о нем (о нем уже есть статьи на хабре), а о новом сервисе Unity Cloud Build, специально для разработчиков на движке Unity.
Читать полностью »

На прошлой неделе вышла новая версия нашего CI сервера: TeamCity 9.0. Вышла она под лозунгом: “Ваш бессменный билд-инженер”, и это неспроста. Новый функционал направлен во многом на облегчение работы билд-инженеров, а также позволяет билд-серверу работать 24/7, без перерывов на обед maintenance.

Конечно, список всех улучшений, как всегда, весьма внушительный, и с ним можно ознакомиться при желании. Однако здесь мы остановимся на ключевых фичах последнего релиза.

TeamCity 9.0: импорт проектов, настройки в VCS, фоновая очистка и панды - 1

Читать полностью »

Доброго времени суток. Решил поделиться опытом в организации рабочего процесса разработки веб-проектов и не только веб. Расскажу свое видение максимально удобного использования связки типа: bugtraker + git + ci + deploy.

Оптимизируем рабочий процесс - 1

Все чаще сталкиваюсь с тем, что подобная оптимизация будет полезна широкому кругу людей. Возможно, в предложенном варианте нет ничего нового, но, лично для меня это было, можно сказать, откровением. Если кто-то, кроме меня, захочет внедрить у себя на проекте что-то подобное, то я буду считать, что статья написана не зря.
Читать полностью »

Привет!

Когда VexorCI начинался, мы решили, что для начала использования не обязательно писать файл конфигурации. Мы сами пытаемся догадаться, что именно нужно для запуска тестов и постоянно учим сервис распознавать новые настройки. Но мир разработки очень разнообразен, поэтому некоторым проектам конфиги необходимы.
За последние пару месяцев к Vexor подключилось 100 проектов. Очень разных проектов с уникальными настройками. За это время мы много узнали о том, как готовить файлы конфигурации так, чтобы это было удобно нашим юзерам. В процессе мы пересмотрели наш первоначальный подход и хотим поделиться с вами нововведениями.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js