Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

VexorCI под капотом

Блог компании VexorCIРазработка веб-сайтовТестирование IT-систем
Привет, Хабр! Время долгожданного поста про внутреннее устройство Vexor – облачного continuous integration для разработчиков, позволяющего эффективно тестировать проекты и платить только за те ресурсы, которые реально используются.

image
Читать дальше →
Всего голосов 22: ↑18 и ↓4 +14
Просмотры5.4K
Комментарии 2

Вышел GitLab 8.10

Блог компании SoftmartGitСистемы управления версиями
Перевод

Всем привет. В этот раз задержка с переводом релизного поста получилась всего 10 дней, и это радует.
Переводом в этот раз занимался chebureque, за что ему большая благодарность!


Коротко: Увеличилась производительность, появилась защита веток от изменений с использованием масок, улучшили отображение диффов, добавили ручные действия в CI, массовую подписка на тикеты, улучшили поддержку Slack и добавили больше эмодзи.


Сам текст перевода:




Основная задача GitLab — позволить вам как можно быстрее пройти путь от идеи до готового к использованию продукта. Каждый наш релиз направлен на то, чтобы сделать этот путь еще проще, и версия 8.10 особенно преуспела в этом!


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


Наш июльский (MVP) — Winnie! Он очень сильно помог нам, исправляя баги и наводя порядок в нашем issue tracker-е.


Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры13.5K
Комментарии 23

Введение в GitLab CI

Блог компании SoftmartТестирование IT-системGitТестирование веб-сервисовСистемы сборки
Перевод
Tutorial

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Просмотры162.4K
Комментарии 19

GitLab CI: Учимся деплоить

Блог компании SoftmartOpen sourceGitСистемы управления версиямиСистемы сборки
Перевод

В данной статье речь пойдет об истории успеха воображаемого новостного портала, счастливым владельцем которого являетесь вы. К счастью, вы уже храните код проекта на GitLab.com и знаете, что для тестирования можно использовать GitLab CI.
Теперь вам интересно, можно ли пойти дальше и использовать CI еще и для развертывания проекта, и если да, то какие возможности при этом открываются.


Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


У автора нет цели дать рецепты для конкретной технологии в этой статье. Наоборот, примеры кода максимально примитивны, чтобы слишком на них не зацикливаться. Смысл в том чтобы вы посмотрели на фичи и принципы работы GitLab CI в действии, а потом применили их для вашей технологии.



Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры91.8K
Комментарии 4

GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн

Блог компании ФлантOpen sourceGitСистемы управления версиямиСистемы сборки


Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
Читать дальше →
Всего голосов 44: ↑43 и ↓1 +42
Просмотры101.9K
Комментарии 25

GitLab CI для непрерывной интеграции и доставки в production. Часть 2: преодолевая трудности

Блог компании ФлантПрограммированиеGitСистемы управления версиямиСистемы сборки

Эта статья продолжает первую часть, содержащую подробное описание нашего пайплайна:

image

… и рассказывает о проблемах, с которыми мы столкнулись для его реализации, и их решении.

Итак, я остановился на том, что созданный .gitlab-ci.yml не позволяет реализовать пайплайн в полной мере, поскольку GitLab CI не предоставляет директив для разделения задач по пользователям и для описания зависимостей выполнения задач от статуса выполнения других задач, а также не позволяет разрешить модификацию .gitlab-ci.yml только для отдельных пользователей.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры34K
Комментарии 14

Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений

Блог компании ФлантGitСистемы сборкиDevOps
Tutorial


В статье решается задача управления описанием сборки для большого количества однотипных приложений. Чтобы в проекте заработал GitLab CI, нужно в репозиторий добавить файл .gitlab-ci.yml. Но что, если в сотне репозиториев это файл с одинаковым содержимым? Даже если разложить его по репозиториям один раз, то как его потом изменять? А что, если одного .gitlab-ci.yml мало для сборки — нужны Dockerfile или Dappfile, разные скрипты и структура YAML-файлов для Helm? Как обновлять их?

С чего начать решение задачи по сборке сотни однотипных приложений? Конечно же, посмотреть, можно ли GitLab CI указать использовать .gitlab-ci.yml из другого репозитория или компоновать .gitlab-ci.yml из файлов в других репозиториях…
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры53.9K
Комментарии 7

Лучшие практики CI/CD с Kubernetes и GitLab (обзор и видео доклада)

Блог компании ФлантСистемное администрированиеСерверное администрированиеDevOpsKubernetes


7 ноября на конференции HighLoad++ 2017, в секции «DevOps и эксплуатация» прозвучал доклад «Лучшие практики CI/CD с Kubernetes и GitLab». В нём мы делимся практическим опытом решения проблем, возникающих при построении эффективного процесса CI/CD на базе указанных Open Source-решений.

По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры35.8K
Комментарии 8

Сборка и дeплой приложений в Kubernetes с помощью dapp и GitLab CI

Блог компании ФлантСистемное администрированиеСистемы сборкиDevOpsKubernetes
Tutorial


В предыдущих статьях о dapp было рассказано про сборку приложений и про запуск в Minikube. При этом dapp запускался локально на машине разработчика. Однако инструмент задумывался для поддержки процессов непрерывной интеграции (CI) и сами мы используем его в основном в связке с GitLab. Чем dapp помогает в процессах CI/CD?
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры19.4K
Комментарии 4

GitLab для Continuous Delivery проекта на технологиях InterSystems

Блог компании InterSystemsGitСистемы управления версиямиGitHubУправление разработкой
Tutorial

В данной статье хотелось бы рассказать про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений на платформах InterSystems.


Рассмотрим такие темы как:


  • Git 101
  • Методологии разработки (Git flow)
    • GitHub flow
    • GitLab flow
  • GitLab
  • GitLab CI
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры9.9K
Комментарии 3

GitLab для Continuous Delivery проекта на технологиях InterSystems: Контейнеры

Блог компании InterSystemsGitСистемы управления версиямиGitHubУправление разработкой
Tutorial

Эта статья — продолжение статьи про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений применимо к решениям на платформе InterSystems.


Рассмотрим такие темы как:


  • Контейнеры 101
  • Контейнеры на разных этапах цикла разработки ПО
  • Continuous Delivery с контейнерами
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры5.6K
Комментарии 6

Docker + Laravel = ❤

PHPLaravelСистемы сборки

laravel-in-docker


Эта статья использует устаревший и не самый рациональный подход, на данный момент не могу его рекомендовать к использованию. Рекомендую к прочтению следующую статью.

В данной статье я расскажу о своём опыте "заворачивания" Laravel-приложения в Docker-контейнер да так, что бы и локально с ним могли работать frontend и backend разработчики, и запуск его на production был максимально прост. Так же CI будет автоматически запускать статические анализаторы кода, phpunit-тесты, производить сборку образов.


"А в чём, собственно, сложность?" — можешь сказать ты, и будешь отчасти прав. Дело в том, что этой теме посвящено довольно много обсуждений в русскоязычных и англоязычных комьюнити, и почти все изученные треды я бы условно разделил на следующие категории:


  • "Использую докер для локальной разработки. Ставлю laradock и беды не знаю". Круто, но как обстоят дела с автоматизацией и запуском на production?
  • "Собираю один контейнер (монолит) на базе fedora:latest (~230 Mb), ставлю в него все сервисы (nginx, бд, кэш, etc), запускаю всё супервизором внутри". Тоже отлично, прост в запуске, но как на счёт идеологии "один контейнер — один процесс"? Как обстоят дела с балансировкой и управлением процессами? Как же размер образа?
  • "Вот вам куски конфигов, приправляем выдержками из sh-скриптов, добавим магических env-значений, пользуйтесь". Спасибо, но как же на счёт хотя бы одного живого примера, который я бы мог форкнуть и полноценно поиграться?

Для нетерпеливых — ссылка на репозиторий, склонировав который ты сможешь запустить Laravel-приложение одной командой. Так же не составит труда его запустить на том же rancher, правильно "слинковав" контейнеры, или использовать продуктовый вариант docker-compose.yml как отправную точку.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры57.2K
Комментарии 23

Советы по созданию нестандартных рабочих процессов в GitLab CI

Блог компании ФлантСистемное администрированиеСистемы сборкиDevOps
Перевод
Прим. перев.: Оригинальную статью написал Miłosz Smółka — один из основателей небольшой польской компании Three Dots Labs, специализирующейся на «продвинутых backend-решениях». Автор опирается на свой опыт активной эксплуатации GitLab CI и делится накопленными советами для других пользователей этого Open Source-продукта. Прочитав их, мы поняли, насколько нам близки описанные им проблемы, поэтому решили поделиться предлагаемыми решениями с более широкой аудиторией.



На этот раз я затрону более продвинутые темы в GitLab CI. Частой задачей здесь является реализация в пайплайне нестандартных возможностей. Большинство советов специфичны для GitLab, хотя некоторые из них можно применить и к другим системам CI.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры11.6K
Комментарии 2

Настройка GitLab CI для загрузки java проекта в maven central

JavaDevOps
Из песочницы


Данная статья рассчитана на java разработчиков, у которых возникла потребность быстро публиковать свои продукты в репозиториях sonatype и/или maven central с использованием GitLab. В данной статье я расскажу про настройку gitlab-runner, gitlab-ci и maven-plugin для решения данной задачи.

Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры12.2K
Комментарии 1

GitLab Shell Runner. Конкурентный запуск тестируемых сервисов при помощи Docker Compose

Тестирование IT-системTDDТестирование веб-сервисовDevOpsМикросервисы


Данная статья будет интересна как тестировщикам, так и разработчикам, но рассчитана в большей степени на автоматизаторов, которые столкнулись с проблемой настройки GitLab CI/CD для проведения интеграционного тестирования в условиях недостаточности инфраструктурных ресурсов и/или отсутствия платформы оркестрации контейнеров. Я расскажу, как настроить развертывание тестируемых окружений при помощи docker compose на одном единственном GitLab shell раннере и так, чтобы при развертывании нескольких окружений запускаемые сервисы друг другу не мешали.

Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры16.2K
Комментарии 20

Consumer Driven Contracts или Gitlab CI глазами QA test automation

PythonТестирование веб-сервисовТестирование мобильных приложенийМикросервисы
Из песочницы

Цели данной публикации:


  • Краткое введение в Consumer Driven Contracts (CDC)
  • Настройка CI pipeline на основе CDC

Consumer Driven Contracts


В этой части мы пройдемся по основным моментам CDC. Данная статья не является исчерпывающей на тему контрактного тестирования. Существует достаточное количество материалов на эту тему на том же Хабре.


Для продолжения нам необходимо познакомиться с основными положениями CDC:


  • Контактное тестирование находится на уровне Service/Integration Tests над Unit Tests согласно пирамиде автотестирования (Mike Cohn)
  • Контрактное тестирование может применяться, когда есть 2 (или более) сервиса, которые взаимодействуют друг с другом
  • Сonsumer driven подход означает, что первым шагом в реализации является написание теста на стороне потребителя. Результатом теста является пакт (контракт) в формате json, который описывает взаимодействие между потребителем (например, веб-интерфейс / мобильный интерфейс: сервис, который хочет получить некоторые данные) и поставщиком (например, серверный API: сервис, который предоставляет данные)
  • Следующим шагом является проверка договора с провайдером. Это полностью осуществлено фреймворком Pact.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры3.5K
Комментарии 2

JUnit в GitLab CI с Kubernetes

Блог компании ФлантТестирование IT-системСистемное администрированиеDevOpsKubernetes
Несмотря на то, что все прекрасно знают, что тестировать свой софт важно и нужно, а многие давно делают это автоматически, на просторах Хабра не нашлось ни одного рецепта по настройке связки таких популярных в этой нише продуктов, как (любимый нами) GitLab и JUnit. Восполним этот пробел!



Вводные


Для начала обозначу контекст:

  • Так как все наши приложения работают в Kubernetes, будет рассмотрен запуск тестов в соответствующей инфраструктуре.
  • Для сборки и деплоя мы используем werf (в смысле инфраструктурных компонентов это также автоматически означает, что задействован Helm).
  • В детали непосредственного создания тестов вдаваться не буду: в нашем случае клиент пишет тесты сам, а мы лишь обеспечиваем их запуск (и наличие соответствующего отчета в merge request'е).
Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры5.8K
Комментарии 2

Docker + Laravel + RoadRunner = ❤

PHPLaravelСистемы сборки

picture


Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать поставленную задачу, довольно сильно изменились.


Всё, что будет написано ниже, является субъективным опытом, который (как и всегда) не претендует на право считаться единственно верным решением, но некоторые подходы и решения, возможно, тебе покажутся интересными и полезными.


В качестве приложения так же буду использовать Laravel, так как он мне наиболее знаком и довольно широко распространен. Адаптировать под другие PSR-7-based фреймворки/компоненты возможно, но этот рассказ не про это.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры17.4K
Комментарии 10

Сборка и деплой однотипных микросервисов с werf и GitLab CI

Блог компании ФлантСистемы сборкиDevOpsМикросервисыKubernetes
Tutorial


Два года назад мы публиковали статью «Сборка проектов с GitLab CI: один .gitlab-ci.yml для сотни приложений», а теперь расскажем о решении схожей задачи сегодня. Новый материал — о том, как можно построить CI/CD-процессы для большого количества однотипных приложений с появлением include в .gitlab-ci.yml и приходом werf на замену dapp.
Читать дальше →
Всего голосов 41: ↑40 и ↓1 +39
Просмотры9.3K
Комментарии 7

Динамическая сборка и деплой Docker-образов с werf на примере сайта версионированной документации

Блог компании ФлантСистемы сборкиDevOps
Tutorial
Мы уже не раз рассказывали про свой GitOps-инструмент werf, а в этот раз хотели бы поделиться опытом сборки сайта с документацией самого проекта — werf.io (его русскоязычная версия — ru.werf.io). Это обычный статический сайт, однако его сборка интересна тем, что построена с использованием динамического количества артефактов.



Вдаваться в нюансы структуры сайта: генерацию общего меню для всех версий, страницы с информацией о релизах и т.п. — не будем. Вместо этого, сфокусируемся на вопросах и особенностях динамической сборки и немного на сопутствующих процессах CI/CD.
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Просмотры6.2K
Комментарии 0
1