CI/CD для JS розробників. Частина друга – практика

share
Автор: Інна Іващук, Senior Software Engineer, Engineering, Counsultant, GlobalLogic Ukraine

Продовжуємо розбиратись з СІCD аби покращити життя розробників. Першу частину про теоретичний огляд концепції можна прочитати за посиланням.

У цій частині ми глянемо на основні популярні інструменти CI/CD, які можна використати у розробці, і спробуємо швидко сконфігуруємо Travis CI (і, звісно, запустимо), і глянемо на GitHub Actions.

Спочатку, пригадаємо основні практики, які розібрали минулого разу та розберемо, у чому плюси використання кожної з них.

Плюси використання CI/CD практик

Для початку, глянемо, що нам потрібно, щоб почати використовувати СІ:

  • Написати автоматичні тести.
  • Сервер або сервіс, який буде слідкувати за основним репозиторієм, і буде запускати авто тести на кожен комміт, а це в свою чергу допоможе нам бачити статус та валідність коду.
  • Мерджити код якомога частіше, як мінімум один раз на день.

Що ми отримаємо?

  • Можливість відловити більшість помилок, оскільки тести, які перевіряють основну функціональність, інформують розробників, що щось пішло не так.
  • Пришвидшення релізу.
  • Набагато менше перемикань між задачами для розробника.
  • Можливість запускати велику кількість тестів на сервері, які будуть відпрацьовувати буквально за кілька хвилин.

Для того, щоб почати використовувати практику СD, потрібно:

  • Високе покриття коду тестами.
  • Деплоймент повинен відбуватися автоматично.
  • Використання додаткових flags, які дозволять нам приховувати незакінчений функціонал (наприклад Launch Darkly).

Що ми отримаємо?

  • Деплоймент веб додатку стане набагато простішим.
  • Можливість робити реліз набагато частіше.

Для того, щоб почати використовувати практику СD (continuous deployment), потрібно:

  • Різні типи автоматизованих тестів (integration, performance, acceptance і тд), написаних не лише розробниками, а і QA.
  • Документація, яку потрібно тримати в актуальному стані.
  • Додаткові flags, які допоможуть приховати незакінчені частини, які зараз в процесі розробки.

Що нам це дасть?

  • Повністю автоматизований реліз.
  • Не потрібно робити code freeze, через те, що реліз довго готується.
  • Відсутність ризиків, адже все продумано, налаштовано та сконфігуровано.
  • Задоволені користувачі, які бачать покращення кожного тижня або, навіть, кожного дня.
Easy start with Travis CI

А тепер саме час спробувати один з інструментів, а саме Travis CI. Для того, щоб розпочати роботу, нам потрібно:

  • Перейти на сайт travic-ci.com та авторизуватись використовуючи GitHub акаунт
  • Підтвердити авторизацію на travis-ci.com, після чого буде перенаправлення на GitHub.
  • Пройти декілька простих кроків та обрати репозиторій, до якого ми хочемо додати відстежування Travis.
  • Додати у вибраний репозиторій файл travis.yml, у якому ми напишемо буквально декілька рядків і таким чином, запустимо роботу CI.

А тепер до коду!

GitHub Actions: чому варто звернути на них увагу

GitHub Actions однозначно вартує вашої уваги, тому що вони:

  • Вбудовані в GitHub, через те інтеграція проходить надзвичайно швидко
  • Дозволяють мультиконтейнерити тестування. У GitHub є багато різних темплейтів для будь-яких типів Continuous Integration
  • Дозволяють створювати свої власні actions та публікувати їх на GitHub Marketplace
  • Абсолютно безкоштовні для open source репозиторіїв

Основні концепції GitHub Actions:

  • Actions – це найменші частинки описаної поведінки.
  • Events, до яких ми можемо прив’язуватись, такі як push, pull request, та виконувати певні задачі
  • Runners
  • Job
  • Steps
  • Workflow – це безпосередньо наш файл, в якому описані поступові кроки, які містять actions, job і steps.

Ось що потрібно, щоб підключити GitHub Actions до репозиторію: невеличкий відео-туторіал. 

Висновки

Повертаючись до заголовка статті, пора все-таки відповісти на запитання: CI/CD для JS – потрібен чи ні?

Звісно ж, так! Це дійсно дуже гаряча тема, про яку варто дізнатись більше, а головне спробувати застосувати на проєкт, як мінімум провести експеримент на своєму власному репозиторії.

Бажаємо вам успіхів, а якщо хочете більше корисних матеріалів – завітайте до нашого JS Community!

Категорії блогу

Категорії блогів

ТОП автори

Oleksandr Dehtiar

Oleksandr Dehtiar

Software Engineer, Technology, GlobalLogic

Oleksandra Skybina

Oleksandra Skybina

Manager, Agile Expert, GlobalLogic

Kateryna Kovalova

Kateryna Kovalova

Manager, Quality Assurance, GlobalLogic

Andrii Shapovalov

Andrii Shapovalov

Specialist, Marketing, GlobalLogic

Ivan Bykov

Ivan Bykov

Senior Consultant, Engineering, GlobalLogic

Архів

Подивіться наші попередні колонки

Подивитись архів