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

Categories: DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Автор: Інна Іващук, 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!

Top Insights

Python: чому вивчати та з чого почати?

Python: чому вивчати та з чого почати?

InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Тонкощі CV або Як скласти та куди надіслати, щоб отримати пропозицію мрії про співпрацю

Тонкощі CV або Як скласти та куди надіслати,...

HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
CI/CD для JS розробників. Частина перша – теорія

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

DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Soft and Hard Skills: Що важливіше? Розповідь одного рекрутера

Soft and Hard Skills: Що важливіше? Розповідь одного...

HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology

ТОП автори

Volodymyr Nos

Volodymyr Nos

Lead Software Engineer, Engineering, GlobalLogic

Mariia Krapyvka

Mariia Krapyvka

Specialist, GlobalLogic

Dmytro Haidenko

Dmytro Haidenko

Senior Test Engineer, Quality Assurance, GlobalLogic

Dmytro Ryabokon

Dmytro Ryabokon

Director, Engineering, GlobalLogic

Roman Ostash

Roman Ostash

Lead Software Engineer, Engineering, GlobalLogic

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

  • URL copied!