🤖
LifeEXE
Udemy курс UE / C++ PatreonBoostyTelegramYouTube
  • 🤍Welcome
  • 💡Мои курсы
    • 🎮Unreal Engine — полное руководство по разработке на С++
    • 🧪Автоматизация и тестирование в Unreal Engine
    • 🐍Snake game
    • 🔊Metasounds
    • 🏗️Design patterns
    • 🕹️Game Engine hardCORE series
    • 🧠OpenAI
  • 🔗Сообщество
    • Ресуры
    • Поддержать проект
    • Проекты участников сообщества
    • Code review участников сообщества
  • 📚Образовательные ресурсы
    • Книги
      • C++
      • ООП
      • Чистый код
      • Компьютерная графика
      • Алгоритмы и структуры данных
      • Дизайн и проектирование
      • Виртуальная реальность
      • Процедурная графика
      • Функциональное программирование
      • Менеджмент проектов
      • Фундаментальное
      • Тестирование
      • Разное
    • Online
      • Unreal Engine
      • C++
      • Компьютерная графика
      • Чистый код
      • AI
      • Разное
    • Статьи
      • Code / C++
  • 👨‍💻Software
    • IDE
      • VS hotkeys
    • Unreal Engine
    • GIT
    • CI/CD
    • Tools
      • С++
      • Компьютерная графика
      • UI / UX
      • Animations
      • GameDev
      • Unreal Engine
      • Creative coding
      • Sound
      • Документация
      • Статический анализ кода
      • Тестирование
      • Автоматизация
      • Network
      • CV / ML
      • Profiling
      • Fonts
      • UML / diagrams
      • Разное
    • Free assets
  • 💾Code
    • Code style
      • .clang-format
      • .gitignore
      • UE code style
      • Code style проектов LifeEXE
    • C++
      • Const correctness
      • Использование auto
      • Lambda выражения
      • Forward declaration
      • Measure execution time
      • Immediately Invoked Lambda Expression (IILE)
    • Unreal Engine
      • Медленный ли Cast
      • UE_LOGFMT
  • ⁉️FAQ
    • Часто задаваемые вопросы
Powered by GitBook
On this page
  • Зачем автоматизировать процесс разработки?
  • Ссылки

Was this helpful?

  1. Software

CI/CD

Непрерывная интеграция (CI, англ. Continuous Integration) — практика разработки программного обеспечения, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки (до нескольких раз в день) и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счёт наиболее раннего обнаружения и устранения ошибок и противоречий, но основным преимуществом является сокращение стоимости исправления дефекта, за счёт раннего его выявления.

Зачем автоматизировать процесс разработки?

Все повторяющие действия необходимо автоматизировать. Бессмысленно тратить время на то, что может выполняться автоматически.

В общем случае автоматизация затрагивает любую разработку, независимо от платформы, языка программирования, фреймворка и размера команды разработчиков.

Основные преимущества:

  • экономия времени и как следствие человеко-часов

  • уверенность в своем коде

  • наличие актуального билда каждый день (daily / night build)

  • быстрое обнаружение ошибок и моментальный фикс, а не фикс при релизе

  • автоматическое оповещение всех членов команды о состоянии проекта

  • независимость от пользовательского интерфейса программы

  • отделение процесса разработки от сборки (вы не блокируете собственную работу, когда идет сборка)

  • сосредоточенность именно на написании кода, а не на инфраструктуре

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

Модельная утрированная ситуация:

Вы разрабатываете кроссплатформенный, многопользовательский проект под Win, Linux и допустим IOS. И также у вас собственная, кастомная версия движка. Два раза в день вам необходимо иметь стабильную сборку под каждую платформу, что в общем случае означает:

  • компиляция исходников UE

  • компиляция под все платформы клиентов

  • компиляция сервера

  • запуск тестов

  • деплой (загрузка) сервера в облако

  • возможно деплой на подключенные IOS девайсы (последние три модели iPhone и iPad, например)

  • оповещение всех мануальных тестеров и разработчиков, что билд готов (slack, почта) и отправка ссылок на все созданные билды

Теперь представьте, что это все делает вручную человек через пользовательский интерфейс и сколько это займет времени. А если он ошибется в "скрипте" сборки?

На рынке имеется достаточно много решений для настройки пайплайнов CI/CD. В учебных курсах я использую бесплатный сервер непрерывной интеграции Jenkins.

Ссылки

PreviousGITNextTools

Last updated 2 years ago

Was this helpful?

Подробная информация имеется в .

курсе по тестированию
Jenkins
TeamCity
GitLab
Bamboo
👨‍💻
Page cover image