Pull to refresh

«CI/CD с Jenkins» — старт 15 февраля 2023 года

Reading time 3 min
Views 329
Southbridge corporate blog

15 февраля стартует второй поток курса по Jenkins от старшего инженера-программиста VK Кирилла Борисова. За месяц вы научитесь автоматизировать процесс интеграции и поставки, ускорять цикл разработки и внедрять полезные инструменты, настраивать плагины, создавать пайплайны Jenkins as code и работать с Jenkins Shared Library.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 0

Видеокурс «CI/CD с Jenkins» с Кириллом Борисовым, старшим инженером-программистом VK

Reading time 2 min
Views 472
Southbridge corporate blog

Курс с упором на практическое использование Jenkins. Будет много примеров из личной практики спикера. Вы научитесь автоматизировать процесс интеграции и поставки, сможете ускорить цикл разработки и внедрить полезные инструменты и пройдете путь от настройки первого плагина и создания простого пайплайна до Jenkins as code и внедрения в Kubernetes.

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 1

Непрерывная интеграция: Hudson + PHPUnit

Reading time 4 min
Views 2.5K
PHP *
Существует цепочка в мозгу: мы напишем юнит тесты, затем эти тесты нам расскажут если мы что-то сломали, затем они нам почту будут отправлять о том, что проект поломался.
Это ничто иное, как иллюстрация непрерывной интеграции (Continious Integration) нычне крайне модного направления гибкой разработки. Единственный недостающий элемент цепочки — «КАК». Ниже коротенький рецепт, как бы отвечающий «очень просто».
Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Comments 19

Герой номера — Build Manager

Reading time 4 min
Views 5K
Project management *
Так много говорят о системных администраторах, разработчиках, тестировщиках… Захотелось поговорить про тех, без кого не обходится ни одна энтерпрайз-разработка. Build Manager, так-же известный как Release Engineer, остается героем в тени — мало кто о нем знает.
Кто же он?
Total votes 9: ↑6 and ↓3 +3
Comments 14

Интегрируем Copy-Paste-Detection в Xcode, и не только

Reading time 4 min
Views 4.6K
Development for iOS *
Сегодня ночью, проводя очередной code-review в наших проектах, наткнулся на большой кусок проявления чистейшего, кристализованного копипаста. Он не очень пришелся мне по душе, и как-то сразу всплыл вопрос:" А много ли копипаста у нас в проектах"? Google is my friend, поэтому решение нашлось очень быстро у jkennedy1980, который использовал CPD (copy paste detector), который входит в PMD (Pretty Much Done || Project Mess Detector || Programming Mistake Detector || ... ). В общем случае, CPD умеет находить copy-paste сходу для ряда языков(cpp, cs, java, php, ruby, ecmascript) и относительно легко расширяется, но мне же был нужен Objective-C. Как раз такой вариант и был у jkennedy1980, который использовал CPD в автоматической сборке jenkins'ом. Это в общем случае очень хорошо для любого проекта на любом языке, когда jenkins внедрен в процесс разработки, все права выставлены, и все знают где, когда и что надо нажимать. В случае же, когда разработчики не знают про jenkins, либо знают, но он где-то там далеко, такой метод мягко говоря не подходит. Xcode для iPhone/iOS разработчиков, все же, как-то ближе, и хотя для него все еще нельзя написать плагин,
Нас это не остановит ...
Total votes 25: ↑23 and ↓2 +21
Comments 17

CircleCI — обзор нового сервиса Continuous Integration

Reading time 3 min
Views 28K
Website development *IT systems testing *
«Вы тестируете? — Возможно.
Все мы согласны, что тестирование – отличная штука, но в реальности доставляет много проблем. В настоящий момент мы занимаемся beta-тестированием партнерского CI сервиса, который предназначен для того, чтобы делать за вас всю тяжелую работу.
Мы работаем над созданием удивительного сервиса CI! Только представьте, что вы сможете использовать исключения для автоматизированного создания тестов! Да, мы работаем над этим!
Ответьте на это сообщение для получения доступа к beta-версии.»


— примерно такие слова в моем вольном переводе с английского я прочитал, зайдя однажды на всем известный airbrakeapp.com, чтобы посмотреть, какие ошибки успели найти юзеры в наших приложениях за ночь.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Comments 5

Автоматическая публикация новой версии библиотеки с использованием TFS 2010 и NuGetter

Reading time 8 min
Views 5.5K
.NET *
Tutorial

Дано


  1. Одна маленькая, но очень полезная библиотека. Включает в себя общую функциональность — логирование, работа с Windows Azure, и т.д.
  2. Большое количество проектов(solutions), где используется данная библиотека.
  3. Распределённая команда разработчиков, часть которой библиотеку пишет и поддерживает, а другая часть только пользуется.

Проблемы, которые хочется решить

  1. Необходимость копировать из проекта в проект исходники/бинарники — неудобно, долго, велика вероятность ошибки при обновлении.
  2. Невозможность использования разных версий для разных проектов — поиск и сборка конкретной версии «из прошлого» неудобны, опять же велика вероятность ошибки при обновлении.
  3. Необходимость следить за актуальностью зависимостей библиотеки — особенно это касается Azure SDK, который сейчас регулярно обновляется, не всегда у всех разработчиков стоит последняя версия, и обновление SDK не всегда возможно.
  4. Использование существующего проекта на разных машинах — ещё одно «тонкое» место, порождающее много ненужных ошибок. Для корректной работы необходимо полное совпадение путей для проектов, чего очень сложно добиться.

Способ решения и возникшие проблемы
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Comments 22

PHPCI: Система непрерывной интеграции для PHP-проектов

Reading time 3 min
Views 24K
PHP *
image

Совсем недавно вышла из бета-версии новая система непрерывной интеграции для PHP-проектов с открытым исходным кодом — PHPCI (текущая версия — 1.1.0), она вскользь упоминалась в дайджесте PHP №21.

Я уже какое-то время эксперементирую с этой системой, поэтому хочу представить вам небольшой ее обзор, тем более что на Хабре нет ни одной статьи о ней.

Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Comments 22

Codeship.io: бесплатный CI сервер для приватного репозитория Github/Bitbucket

Reading time 3 min
Views 27K
Website development *IT systems testing *PHP *
Tutorial

Сразу заинтригую: в результате мы получим связку бесплатного приватного git репозитория на Bitbucket и бесплатный* Continious Integration сервер (SAAS), который будет собирать проект и прогонять все тесты после каждого пуша.
* — бесплатная подписка дает возможность тестировать 5 приватных репозиториев и максимум 100 билдов в месяц.

Мне этого для личного проекта достаточно.

Приведу пример для PHP, проект на Symfony2, но данный сервис поддерживает ещё и Ruby, Node.js, Python.

Читать дальше →
Total votes 28: ↑22 and ↓6 +16
Comments 19

Badoo перешли на PHP7 и сэкономили $1M

Reading time 16 min
Views 104K
Badoo corporate blog Website development *PHP *Programming *
Badoo перешли на PHP7 и сэкономили $1M

Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Ниже мы подробно расскажем, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили.
Читать дальше →
Total votes 169: ↑159 and ↓10 +149
Comments 304

GitLab 8.11: канбан-доска и разрешение конфликтов одним кликом

Reading time 11 min
Views 35K
Softmart corporate blog Git *Version control systems *
Translation

Эта статья — перевод релизной статьи компании GitLab. Релизы выходят каждый месяц 22 числа.


Если вы пропустили предыдущие, вот ссылки: 8.10, 8.9, 8.8




В новом GitLab 8.11 столько всего интересного, что мы с трудом сдерживаем себя в рамках конструктивного повествования!


Итак, в новой версии появились:


  • принципиально новый новый способ представления и работы с тикетами (issues);
  • слеш-команды (/command) для работы с тикетами;
  • возможность создавать шаблоны тикетов (в неограниченном количестве);
  • онлайн-среда разработки;
  • возможность разрешать конфликты мержа не выходя из GitLab;
  • настройка прав на пуш в ветку для отдельных участников и групп (только в ЕЕ);
  • … и много других фич, о которых мы тоже расскажем.
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 33

Автоматизируем сборку iOS приложений с помощью Fastlane

Reading time 6 min
Views 37K
Сбер corporate blog Development for iOS *Development of mobile applications *Mobile applications testing *
Tutorial

Как часто нам, iOS разработчикам, приходится собирать приложение для загрузки в iTunes Connect App Store Connect? В процессе этапа активного бета-тестирования приложения нужно оперативно фиксить баги и поставлять обновленную сборку для тестирования. А также необходимо скачивать сертификаты, Provision profiles, прокликивать много разных галочек и кнопочек при каждой выкладке нового билда.


К счастью, есть такой замечательный инструмент, как fastlane, который помогает нам автоматизировать ручные действия мобильного разработчика.


В этом посте я расскажу: что такое fastlane и как быстро начать его использовать в своих iOS проектах.

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 10

Как машинное обучение в YouDo катится в продакшен. Лекция в Яндексе

Reading time 9 min
Views 9.6K
Яндекс corporate blog Industrial Programming *Machine learning *
В крупных сервисах решить какую-нибудь задачу с помощью машинного обучения — означает выполнить только часть работы. Встраивать ML-модели не так уж просто, а налаживать вокруг них CI/CD-процессы еще сложнее. На конференции Яндекса «Data & Science: программа по заявкам» руководитель направления data science в компании YouDo Адам Елдаров рассказал о том, как управлять жизненным циклом моделей, настраивать процессы дообучения и переобучения, разрабатывать масштабируемые микросервисы, и о многом другом.


— Начнем с вводных. Есть data scientist, он в Jupyter Notebook пишет какой-то код, делает фиче-инжениринг, кросс-валидацию, тренирует модельки. Скор растет.
Total votes 23: ↑22 and ↓1 +21
Comments 8

Опыт мобильного CICD: один стандарт fastlane на много мобильных приложений

Reading time 7 min
Views 10K
Development for iOS *Development of mobile applications *Mobile applications testing *Build automation *DevOps *
Sandbox
🔥 Technotext 2020


Я бы хотела поговорить о непрерывной интеграции и доставке для мобильных приложений с помощью fastlane. Как мы внедряем CI/CD на все мобильные приложения, как мы к этому шли и что получилось в итоге.

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 4

PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerCoaster Tycoon 2 project

Reading time 8 min
Views 571
PVS-Studio corporate blog C++ *Game development *DevOps *

One of the most relevant scenarios for using the PVS-Studio analyzer is its integration into CI systems. Even though a project analysis by PVS-Studio can already be embedded with just a few commands into almost any continuous integration system, we continue to make this process even more convenient. PVS-Studio now supports converting the analyzer output to the TeamCity format-TeamCity Inspections Type. Let's see how it works.
Read more →
Total votes 3: ↑1 and ↓2 -1
Comments 0

PVS-Studio и Continuous Integration: TeamCity. Анализ проекта Open RollerCoaster Tycoon 2

Reading time 8 min
Views 1.4K
PVS-Studio corporate blog C++ *Game development *DevOps *

Один из самых актуальных сценариев использования анализатора PVS-Studio — его интеграция с CI системами. И хотя анализ проекта PVS-Studio практически из-под любой continuous integration системы можно встроить всего в несколько команд, мы продолжаем делать этот процесс ещё удобнее. В PVS-Studio появилась поддержка преобразования вывода анализатора в формат для TeamCity — TeamCity Inspections Type. Давайте посмотрим, как это работает.
Читать дальше →
Total votes 13: ↑10 and ↓3 +7
Comments 0

Идеальный пайплайн в вакууме

Reading time 6 min
Views 17K
Работа.ру corporate blog Git *Web services testing *Build automation *DevOps *

На собеседованиях на позицию, предполагающую понимание DevOps, я люблю задавать кандидатам такой вопрос (а иногда его еще задают и мне):

Каким, по вашему мнению, должен быть идеальный пайплайн от коммита до продашкена?/Опишите идеальный CI/CD / etc?

Сегодня я хочу рассказать про своё видение идеального пайплайна. Материал ориентирован на людей, имеющих опыт в построении CI/CD или стремящихся его получить.

Так-так-так что тут у вас...
Total votes 25: ↑24 and ↓1 +23
Comments 25

CI/CD для коммуникационной платформы Voximplant

Reading time 4 min
Views 1.7K
Voximplant corporate blog Programming *Version control systems *Development Management *
Tutorial

Совсем недавно мы в Voximplant выпустили инструмент под названием VoxEngine CI. Для чего коммуникационной платформе нужна непрерывная интеграция и что можно сделать с её помощью, я расскажу в этой статье.

Если коротко, будем заливать изменения в приложениях на платформу удалённо с максимальным удобством для разработчиков.

Узнать всё
Total votes 12: ↑12 and ↓0 +12
Comments 4

Размер имеет значение! Часть 2

Reading time 5 min
Views 2.9K
Git *Shells *Development for Android *GitHub *DevOps *
Tutorial

Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.

В данной части, обсудим как можно проверять размер в pull request, что позволит автоматизировать весь процесс обнаружения регрессии, до того как изменения попали в development.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

Размер имеет значение! Часть 3

Reading time 2 min
Views 1.4K
Development of mobile applications *Git *Shells *Development for Android *DevOps *
Tutorial

Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.

В последней части, оптимизируем процесс обнаружения регрессии размера андроид приложения.

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 0
1