Pull to refresh
  • by relevance
  • by date
  • by rating

Jenkins CI — вещи, которых мне не хватало

IT systems testing
Sandbox
Доброго времени суток, %username%. Не так давно, меня попросили настроить Continuous Integration сервер, настоятельно порекомендовав использовать Jenkins\Hudson. Я, как человек несведущий в данных делах, решил изучить советы и обзоры по настройке CI систем в сети. Хочется выразить благодарность Wolonter за эту статью, она помогла мне понять общую концепцию и предоставила широчайший набор полезных плагинов. Но, как выяснилось, далеко не все, что я хотел реализовать, оказалось возможным найти в «интернетах». Для тех, кому интересны маленькие(и не очень) шалости и то, как я к ним пришел — прошу под кат.
image
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Views23K
Comments 5

coviolations.io теперь beta

coviolations.io corporate blogOpen sourceGit
coviolations.io — сервис для визуализации результатов тестов и анализаторов кода сегодня перешёл в стадию beta.

Основные нововведения:
  • поддержка приватных репозиториев и репозиториев компаний;
  • поддержка xUnit, coverage, jslint;
  • выставление статуса коммитам на github;
  • добавление аннотаций к коду на github с результатами pep8 и jslint;
  • добавление краткой сводки к pull request (только с travis-ci);
  • новый модный интерфейс на AngularJS;
  • параметры nofail, nocomment и stderr в .covio.yml.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Views2.1K
Comments 0

Как заставить дженкинс сделать вашу жизнь проще и стать счастливым

True Engineering corporate blogDevelopment for iOSDevelopment of mobile applicationsDevelopment for Android
Когда разработка мобильных приложений в компании переходит на промышленные рельсы, неизменно всплывает вопрос об автоматической сборке. Continuous Integration — это то, что является неотъемлемой частью процесса. Итог этого процесса — сборки для тестирования на устройствах компании для OTA распространения заказчикам и удаленным тестировщикам.

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

Итак, эта статья о том, как реализовать копирование сертификатов и профилей для iOS сборок и свойств, и ключей для Android сборок на все слейвы дженкинса в рамках Continuous Integration. Такая автоматизация экономит время и помогает избежать ошибок. Статья будет интересна разработчикам мобильных приложений и тем, кто администрирует Jenkins.

Поехали!


Читать дальше →
Total votes 14: ↑12 and ↓2+10
Views34K
Comments 2

Разграничение прав доступа в Jenkins

Website development
Sandbox
В свое время перерыл много интернета, но подходящего решения найти не удалось. Решил поделиться рецептом решения.

Задача: Организовать доступ к jenkins участникам разных команд разработки, таким образом, чтобы участники одной команды не имели доступа ни к задачам, ни к workspace задач других команд. Т.е. чтобы каждый в рамках своего проекта мог делать в jenkins чего душа пожелает, но не смог даже глазком взглянуть на исходные коды проекта, на которые ему смотреть не положено.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Views26K
Comments 2

Как за день поднять CI для iOS-разработчиков

Лайв Тайпинг corporate blogDevelopment for iOS
Tutorial
Cборка проекта требует от разработчика кучи утомительных операций. Когда менеджеру нужно отчитаться перед заказчиком о ходе работы, разработчик тратит время на выкачивание репозитория, подтягивание библиотек, установку сертификатов, сборку, проверку, выкладывание сборки на сервер и прочие промежуточные этапы. Но на Земле становится всё меньше рутинных действий, которые не подверглись бы автоматизации. Прогрессивная часть девелоперской среды практикует методику непрерывной интеграции (CI), и iOS-отдел компании Лайв Тайпинг решил к ней примкнуть, развернув сервер для сборок на платформе Jenkins. С тех пор началась совсем другая жизнь.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Views24K
Comments 7

Получаем управление обратно в Jenkins Pipeline

Open sourceProgramming
Tutorial

Jenkins Pipeline Plugin очень удобная штука, чтобы организовать у себя непрерывную доставку ПО (Continuous Delivery). Плагин даёт возможность разбить доставку ПО до конечного потребителя на стадии (stage), каждой из которых можно управлять (на каком узле, что и как нужно сделать) и, в конечном счёте, визуализировать процесс доставки. Вкупе с Blueocean plugin всё это выглядит очень вкусно. В реальной же жизни подчас оказывается так, что кроме Jenkins-а есть ещё и другие системы, которые участвуют в этом процессе (workflow), и встаёт вопрос — как их интегрировать с имеющимися решениями. Примером тут может служить Jira, в которой есть некий issue падающий на тестировщика, прокликивающего интерфейс (ну или совершающего другую полезную работу), и только после его благословения, наш артефакт имеет право двигаться дальше в сторону ожидающего его клиента.


Так какие у нас есть варианты реализации?

Хочу узнать
Total votes 15: ↑15 and ↓0+15
Views35K
Comments 5

Как за день поднять CI для iOS-разработчиков. Часть 2

Лайв Тайпинг corporate blogDevelopment for iOS
Tutorial
Всем привет. Это продолжение статьи о том, как iOS-отдел компании Лайв Тайпинг внедрил методологию CI и развернул сервер для автоматизации сборок на Jenkins. Как мы и обещали, вторая часть посвящена тому, как получить основные метрики кода, заархивировать проект в .ipa и настроить взаимодействие со Slack.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Views8.6K
Comments 3

Jenkins для Android на чистой системе и без UI

Development for AndroidBuild automation
Sandbox
На Хабре уже есть похожие статьи на тему сборки Android приложения с помощью Jenkins. Ключевыми особенностями/дополнениями текущей будет следующее:

  1. Мы установим Jenkins на удалённую Linux машину, где отсутствует UI.
  2. Мы будем собирать приложение из приватного репозитория.
  3. Мы решим проблему сборки приложения из ветки имя которой нам не известно.
  4. После сборки .apk файлов мы отправим их в Fabric и оповестим тестировщиков.
  5. После отправления в Fabric мы опубликуем приложение на Google Play.
  6. Защитим задачи по публикации приложения от запуска тестировщиками.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Views18K
Comments 4

Переход с CruiseControl.NET на Jenkins в команде разработчиков PVS-Studio

PVS-Studio corporate blogIT systems testingBuild automation
Picture 1

Сейчас трудно представить разработку программного обеспечения без автоматизированных сборок проекта и тестирования. Для минимизации временных затрат на интеграцию изменений разработчиков в проект, существуют разные готовые решения. В данной статье я расскажу о замене сервера непрерывной интеграции CruiseControl.NET на Jenkins в команде разработчиков PVS-Studio. А также о том, что нас к этому побудило, какие цели мы преследовали и с какими проблемами столкнулись.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Views8.3K
Comments 23

Феншуйная автоматизация CI & CD с помощью Jenkins и Jira

ЮMoney corporate blogGroovy & GrailsDevelopment for e-commerceBuild automationAtlassian

image alt text


Мы давно ничего не рассказывали об автоматизации разработки. Поэтому в этот раз расскажу о том, как мы сократили время релиза с трех дней до одного и убрали из процесса участие человека с его возможными ошибками.


Рассказывать о долгом и тернистом пути всегда непросто. Однако за последние годы инфраструктура разработки Яндекс.Денег сделала большой шаг в сторону автоматизации самого важного для нас процесса — релиза, о чем просто грех не рассказать. Фактически получилось полноценное решение Continuous Integration и Continuous Delivery на базе связки Bitbucket, Jenkins и Jira.

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

В разрезе: новостной агрегатор на Android с бэкендом. Система последовательной интеграции

IT systems testingJava
Вводная часть (со ссылками на все статьи)

«Система последовательной интеграции», не уверен, что перевод правильный – лучше называть система непрерывной интеграции (continuous integration).
С ними первый раз я столкнулся в начале своей работы, когда 5-7 программистов усиленно писали код и тесты, меняли конфигурационные файлы и лили все свои результаты в trunk/master. В итоге частенько (так частенько, что аж бесило) в основной ветке появлялось нечто нерабочее. Причём выявлялось это тогда, когда нужно было развернуть тестовый стенд, что сильно замедляло работу группы тестирования (ждали исправления) и разработчиков (соответственно исправляли). Т.е. работоспособность кода не контролировалась после помещения его в репозиторий.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Views2.1K
Comments 1

Jenkins Pipeline Shared Libraries

IT InfrastructureDevOps
Всем привет. В данной статье хочу поделиться знаниями, полученными в процессе автоматизации развертывания наших сервисов на различные серверы в разных дата-центрах.

Задача была следующей: есть определенный набор скриптов для развертывания сервисов, которые нужно запускать на каждом сервере каждого дата-центра. Скрипты выполняют серию операций: проверка статуса, вывод из-под load balancer’а, выпуск версии, развертывание, проверка статуса, отправка уведомлений через email и Slack и т.д. Это просто и удобно, но с ростом числа дата-центров и сервисов процесс выкатки новой версии может занять целый день. Кроме того, за некоторые действия отвечают отдельные команды, например, настройка load balancer’а. Также хотелось, чтобы управляющий процессом код хранился в общедоступном репозитории, дабы каждый член команды мог его поддерживать.

Решить задачу удалось с помощью Jenkins Pipeline Shared Libraries: этапы процесса разделились визуально на логические части, код хранится в репозитории, а осуществить доставку на 20 серверов стало возможно в один клик. Ниже приведен пример подобного тестового проекта:

image

Сейчас я расскажу и покажу примеры как этого достичь. Надеюсь эта статья поможет сохранить время другим разработчикам, а также буду рад дельным комментариям.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Views29K
Comments 17

Отучаемся от токсичных практик на код-ревью

ProgrammingDevelopment Management
Translation

Код-ревью частенько порождают споры. При подготовке лекции «Отучаемся от токсичного поведения на код-ревью» на конференции AlterConf я была готова услышать кучу возражений и критики. Но совершенно не ожидала, что сообщество настолько поддержит идею. Я предполагала сопротивление, но сообщество очень доброжелательно и с одобрением приняло меня. 

Меня попросили поделиться слайдами, но теперь я подумала, что слайды сами по себе малополезны и вырваны из контекста: им не хватает объяснений. Поэтому решила опубликовать эту статью. Позже организаторы конференции выложили видеозапись.
Читать дальше →
Total votes 69: ↑50 and ↓19+31
Views36K
Comments 76

Configuration of the Warnings Next Generation plugin for integration with PVS-Studio

PVS-Studio corporate blogIT systems testingIT InfrastructureDevelopment ManagementDevOps

Picture 4


The PVS-Studio 7.04 release coincided with the release of the Warnings Next Generation 6.0.0 plugin for Jenkins. Right in this release Warnings NG Plugin added support of the PVS-Studio static code analyzer. This plugin visualizes data related to compiler warnings or other analysis tools in Jenkins. This article will cover in detail how to install and configure this plugin to use it with PVS-Studio, and will describe most of its features.
Read more →
Total votes 34: ↑33 and ↓1+32
Views1K
Comments 0

Настройка Warnings Next Generation плагина для интеграции PVS-Studio

PVS-Studio corporate blogIT systems testingIT InfrastructureDevelopment ManagementDevOps

Picture 12

Релиз PVS-Studio 7.04 совпал c релизом плагина Warnings Next Generation 6.0.0 для Jenkins. Как раз в этом релизе Warnings NG Plugin добавил поддержку статического анализатора PVS-Studio. Этот плагин визуализирует данные о предупреждениях компилятора или других инструментов анализа в Jenkins. В этой статье будет подробно рассказано как установить и настроить данный плагин для использования с PVS-Studio, а также описано большинство его возможностей.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Views980
Comments 0

Помощь девопсам по внедрению PKI

GlobalSign corporate blogInformation SecurityServer AdministrationDevOpsCloud services

Ключевые интеграции Venafi

У девопсов и так много работы, а от них ещё требуют экспертных знаний по криптографии и инфраструктуре открытых ключей (PKI). Это неправильно.

Действительно, у каждой машины должен быть валидный TLS-сертификат. Они нужны для серверов, контейнеров, виртуальных машин, в сетках service mesh. Но количество ключей и сертификатов растёт как снежный ком, а управление быстро становится хаотичным, дорогостоящим и рискованным, если всё делать самостоятельно. При отсутствии надлежащей практики применения политик и мониторинга бизнес может пострадать из-за слабых сертификатов или неожиданного истечения срока действия.

GlobalSign и Venafi организовали два вебкаста в помощь девопсам. Первый — вводный, а второй — с более конкретными техническими советами по подключению системы PKI от GlobalSign через облако Venafi с помощью опенсорсных инструментов через HashiCorp Vault из конвейера Jenkins CI/CD.
Читать дальше →
Total votes 20: ↑16 and ↓4+12
Views6.4K
Comments 6

Создание инкрементального сервера для iOS Team

Development for iOS
image

Бесплатная книга

После пяти лет наступаний на одни и те же грабли, и полугода поисков DevOps-а, который знает что-такое Provision Profile и как от него зависит развертывание приложения, было принято решение составить пошаговую инструкцию, в картинках, о том, настраивать рабочее окружение в iOS Team с минимальными финансовыми вложениями (к примеру, когда нет проплаченных аккаунтов GitHub или Jira), а работа кипит.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Views2.3K
Comments 1

Хорошо подумайте, прежде чем использовать Docker-in-Docker для CI или тестовой среды

ua-hosting.company corporate blogProgrammingIT InfrastructureVersion control systemsDebugging
Translation


Docker-in-Docker представляет собой виртуализированную среду Docker-демон, запущенную в самом контейнере для сборки образов контейнера. Основной целью создания Docker-in-Docker была помощь в разработке самого Docker. Многие люди используют его для запуска Jenkins CI. Поначалу это кажется нормальным, но затем возникают проблемы, которых можно избежать, установив Docker в контейнер Jenkins CI. В этой статье рассказывается, как это сделать. Если вас интересует итоговое решение без подробностей, просто прочитайте последний раздел статьи «Решение проблемы».

Читать дальше →
Total votes 30: ↑25 and ↓5+20
Views20K
Comments 13

Jenkins Scripting Pipeline — генерация стадий выполнения

Технологический Центр Дойче Банка corporate blogProgrammingGroovy & GrailsDevOps

Всем привет! В интернете довольно много статей, связанных с Declarative Jenkins pipeline, и совсем немного о Jenkins Scripting Pipeline, хотелось бы восполнить этот пробел.


image

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Views8.7K
Comments 1

Что такое CI (Continuous Integration)

Website developmentIT systems testingWeb services testingDevOps
CI (Continuous Integration) — в дословном переводе «непрерывная интеграция». Имеется в виду интеграция отдельных кусочков кода приложения между собой. Чем чаще мы собираем код воедино и проверяем:

  • Собирается ли он?
  • Проходят ли автотесты?

Тем лучше! CI позволяет делать такие проверки автоматически. Он используется в продвинутых командах разработки, которые пишут не только код, но и автотесты. Его спрашивают на собеседованиях — хотя бы понимание того, что это такое. Да, даже у тестировщиков.

Поэтому я расскажу в статье о том, что это такое. Как CI устроен и чем он пригодится вашему проекту. Если вы больше любите видео-формат, можно посмотреть мой ролик на youtube на ту же тему.


Читать дальше →
Total votes 38: ↑34 and ↓4+30
Views47K
Comments 21