Frontend
October 15, 2023

Работа с CI/CD в Gitlab: автоматическая сборка и развертывание приложения

Что такое CI/CD

CI (Continuous Integration) - это практика, когда разработчики часто объединяют свой код в общую кодовую базу. Это нужно, чтобы не было конфликтов между изменениями от разных людей.

К примеру, ты пишешь одну часть программы, а твой друг - другую. Если вы будете интегрировать код раз в неделю, то рискуете, что ваши части перестанут работать вместе. А если делать это каждый день - все будет отлично!

CD (Continuous Delivery/Deployment) - это практика, когда после каждого изменения код автоматически тестируется и отправляется заказчикам. То есть ты можешь быстро выпускать обновления для приложения.

Вместе CI и CD позволяют быстро и безопасно разрабатывать программы в команде. Это очень помогает, когда над одним проектом работает много людей.

Знакомство с GitLab

GitLab - это сервис, который помогает настроить CI/CD для проектов. Он работает вместе с Git - системой контроля версий кода.

В GitLab есть:

  • Репозиторий - там хранится весь код проекта.
  • CI/CD пайплайн - цепочка действий по тестированию и развертыванию кода.
  • Файлы конфигурации - описывают, как именно работает пайплайн.

То есть ты просто добавляешь код в репозиторий, а дальше GitLab автоматически запускает тесты, собирает программу и отправляет ее куда надо. Удобно же?

Настройка CI/CD в GitLab

Чтобы запустить CI/CD, нужно создать файл .gitlab-ci.yml. В нём описываются стадии пайплайна:

stages:
  - build
  - test
  - deploy
  
build:
  stage: build
  script:
    - собрать программу
    
test:
  stage: test 
  script:
   - запустить тесты
   
deploy:
  stage: deploy
  script:
   - отправить программу на сервер

Здесь 3 стадии: сборка, тестирование и развертывание. Для каждой указаны команды в скриптах.

Этого достаточно для базового CI/CD! Дальше можно настраивать уведомления, распараллеливание задач и другие полезные вещи.

Автоматическая сборка кода

Когда ты добавляешь новый код в репозиторий, GitLab сразу запускает пайплайн.

Сначала идет сборка. Система выполняет скрипты для:

  • компиляции кода
  • упаковки в исполняемые файлы или библиотеки
  • подготовки необходимых зависимостей и ресурсов

Если на этом этапе все прошло нормально - можно переходить к тестам.

Тестирование кода

На стадии тестирования запускаются автоматические тесты, которые проверяют работу программы.

Можно написать юнит-тесты для отдельных функций, интеграционные тесты для их взаимодействия и еще UI-тесты для проверки интерфейса.

Хорошие тесты - залог качественного кода. GitLab помогает их запускать автоматически при каждом изменении.

Развертывание программы

Если сборка и тесты прошли успешно, можно развернуть программу.

Например, загрузить файлы на сервер или опубликовать в магазине приложений.

В GitLab для этого нужно добавить скрипты rsync, FTP или другие команды, чтобы перенести файлы куда нужно.

Таким образом новые версии программы будут автоматически появляться у пользователей.

Мониторинг и оптимизация

Чтобы следить за работой CI/CD, в GitLab есть мониторинг пайплайнов.

Можно посмотреть:

  • сколько времени занимает каждая стадия
  • сколько ошибок возникает
  • какая нагрузка на серверы сборки

Это помогает найти "узкие места" и ускорить процесс. Например, добавить больше мощностей или распараллелить задачи.

В итоге CI/CD становится быстрее и надежнее. А значит, ты можешь чаще выпускать обновления для своих программ!

Итог

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