-
-
-
-
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 IndustrialMediaTechnologyCI/CD для JS розробників. Частина перша – теорія
DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologySoft and Hard Skills: Що важливіше? Розповідь одного...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТОП автори
Категорії блогів
Давайте співпрацювати
Схожі теми
Мережеві основи
Основні поняття мереж Мережі забезпечують зв'язок між комп'ютерами, пристроями та користувачами навіть на великих відстанях. Вони є основою для спільної роботи, комунікації та обміну ресурсами. Мережа — це система, у якій два або більше комп'ютерів та інших пристроїв з'єднані між собою для обміну даними та ресурсами. Вони можуть бути локальними (LAN), розширеними (WAN), бездротовими (Wi-Fi) … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Основи операційних систем
Windows, Linux, macOS: порівняння та особливості У світі комп'ютерів три операційні системи відіграють ключову роль: Windows, Linux та macOS. Кожна з цих систем має свої унікальні особливості та призначення, що робить їх популярними серед різних категорій користувачів. У цій статті ми розглянемо ці три операційні системи, їхні переваги та особливості. Windows Windows — найпопулярніша операційна … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Основи інформатики та програмування
Вступ до інформатики та IT-сфери Інформатика та технології інформаційної обробки є дверима в швидкоплинну та захоплюючу сферу — сферу інформаційних технологій (IT). У світі, де відсутність доступу до інформації може виявитися прогресивною перешкодою, розуміння основ інформатики та IT-сфери стає критичним для кожної людини. Що таке інформатика та IT-сфера? Інформатика — це наука про обробку та … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Як зберігати і підвищувати власну продуктивність в ІТ
Артур Мицко, Lead Software Engineer, GlobalLogic У компанії Globallogic я пройшов шлях від С++ trainee до Lead Software Engineer. Як зазвичай буває, коли людина приходить в ІТ-компанію вперше — все навколо нове та цікаве, ти не помічаєш як летить час. Чесно кажучи, в перші роки я не сильно то і відпочивав, переважно на свята. Це, … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Як покращити ресурсний стан через оточення
Катерина Васильєва, Senior HRBP, GlobalLogic Ресурсний стан як поняття, яке використовується в психології, медицині, спорті та інших галузях, описує психофізіологічний стан людини, який характеризується рівнем її енергії, витривалості, здатності до праці та концентрації уваги. Відповідно, ресурсний стан впливає на різні аспекти життя людини, і визначається різними чинниками, як то рівень фізичного здоров'я, ступінь стресу або … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Як стати .NET розробником. Перші кроки та поради
Олексій Глембицький, Senior Software Engineer, GlobalLogic Мене звати Глембицький Олексій, я .NET розробник в компанії GlobalLogic, а також проводжу вебінари та викладаю курси по мові програмування С#. І в цій статті я би хотів поділитись порадами, які допомагають моїм студентам опанувати мову програмування С# та стати .NET-розробниками. Про мову програмування C# та платформу .NET C# … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Як покращити презентації
Денис Братчук, Engineering Director, GlobalLogic Майже кожен з нас час від часу виступає із презентаціями чи доповідями, використовуючи як ілюстрацію слайди, створені в популярних офісних програмах, на кшталт PowerPoint або Google Slides. Менеджери проєктів створюють звіти про хід виконаних робіт, інженери презентують новітні технологічні рішення, керівництво звітує про досягнення фінансових цілей, а менеджери з продажів … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Від студента до Trainee-спеціаліста: історія випускника С++ GL BaseCamp
Почати шлях в ІТ під час навчання в університеті — ще той виклик, який вимагає наполегливості і постійної практики. Сергій Піскурський, студент та Trainee Specialist GlobalLogic, приєднався до компанії після проходження С++ GL BaseCamp. Хлопець поділився досвідом навчання перед курсом та підготовки до С++ GL BaseCamp. Чому ти вирішив вивчати С? Коли я почав думати … Continue reading CI/CD для JS розробників. Частина друга – практика →
Більше
Share this page:
-
-
-
-
URL copied!