воскресенье, 1 июня 2025 г.

GitLab CI, Giga, Tools

GitLab CI, Giga, Tools

https://giga.chat/link/gcsJhXtnzn Python, Project Structure

GitLab CI (Continuous Integration) — это встроенный в платформу GitLab инструмент для автоматизации процесса сборки,

тестирования и развёртывания приложений. Он позволяет разработчикам запускать произвольные сценарии и задачи всякий раз,

когда происходят изменения в коде (например, новые коммиты, слияния или публикации релизов).

Основы GitLab CI:

Работа GitLab CI основана на YAML-конфигурационном файле .gitlab-ci.yml, расположенном в корневой директории проекта.

Этот файл описывает этапы (jobs), условия запуска и зависимости между задачами.

Пример простейшей конфигурации:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Выполняем сборку..."

test_job:
  stage: test
  script:
    - python -m unittest discover

deploy_job:
  stage: deploy
  script:
    - echo "Релиз готов!"
  only:
    - master

Основные элементы GitLab CI:

  1. Stages (этапы):
  2. Последовательность выполнения задач, определяющая порядок выполнения работ.
  3. Jobs (задачи):
  4. Отдельные действия, содержащие команды для выполнения конкретного этапа.
  5. Triggers (условия запуска):
  6. Определены в параметре only или except, указывают, при каких событиях (ветках, тегах, merge request)
  7. должна запускаться та или иная задача.
  8. Artifacts (результаты выполнения):
  9. Результат выполнения job (например, артефакты сборки, отчёты о покрытии, log-файлы),
  10. сохранённый для дальнейшего использования.
  11. Cache (кеширование):
  12. Механизм сохранения временных данных между выполнениями job для ускорения последующих запусков.

Типичная структура CI/CD пайплайна:

  1. Build (сборка):
  2. Собираются двоичные файлы, формируются пакеты (например, Docker-образы, wheels).
  3. Test (тестирование):
  4. Выполняются unit-тесты, интеграционные тесты, smoke-тесты и прочие проверки качества.
  5. Deploy (развёртывание):
  6. Готовый билд публикуется на staging-окружении или продакшен-сервере.
  7. Monitor (мониторинг):
  8. Наблюдение за работой приложения после развёртывания, оповещение о сбоях и инцидентах.

Дополнительные возможности GitLab CI:

  • Параллельная обработка задач.
  • Организация очереди выполнения задач.
  • Управление секретными ключами и переменными окружения.
  • Возможность работы с внешним хранилищем артефактов.

Пример полного пайплайна:

image: python:latest

stages:
  - build
  - test
  - deploy

variables:
  MY_VAR: "Привет мир!"

before_script:
  - pip install -r requirements.txt

build_job:
  stage: build
  script:
    - python setup.py sdist bdist_wheel
  artifacts:
    paths:
      - dist/*.whl

test_job:
  stage: test
  script:
    - pytest tests/

deploy_staging:
  stage: deploy
  script:
    - twine upload --repository-url https://testpypi.python.org/pypi dist/*
  only:
    - develop

deploy_production:
  stage: deploy
  script:
    - twine upload dist/*
  only:
    - master

Итоги:

GitLab CI — мощный инструмент для автоматизации всех этапов разработки и развёртывания приложений.

Он предоставляет гибкость и широчайший спектр возможностей для построения кастомных пайплайнов,

ориентируясь на потребности проекта.

Правильно настроенный CI-процесс позволяет значительно ускорить разработку,

улучшить качество и минимизировать человеческий фактор при выпуске новой версии продукта.

Комментариев нет:

Отправить комментарий