
-
-
-
-
URL copied!
Автор: Інна Іващук, 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: чому вивчати та з чого почати?
InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Тонкощі CV або Як скласти та куди надіслати,...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
CI/CD для JS розробників. Частина перша – теорія
DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Soft and Hard Skills: Що важливіше? Розповідь одного...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТОП автори
Категорії блогів

Давайте співпрацювати
Схожі теми
Share this page:
-
-
-
-
URL copied!