CI / CD

Refs

What Is CI/CD?
В статье рассматривается концепция Continuous Integration and Continuous Deployment (CI/CD) и объясняется, что такое CI/CD и какие преимущества оно предоставляет в процессе разработки программного обеспечения. Автор описывает, что CI/CD объединяет практики Continuous Integration (непрерывной интеграции) и Continuous Deployment (непрерывного развертывания), позволяя автоматизировать и упростить процессы сборки, тестирования и развертывания приложений. Статья также освещает ключевые принципы CI/CD, такие как автоматизация, версионирование, непрерывное тестирование и развертывание, а также предлагает рекомендации и советы для успешной реализации CI/CD в разработческой команде. В целом, статья предоставляет обзор и обоснование важности CI/CD в современной разработке программного обеспечения. [2017]
PendingHead
Статья объясняет концепцию "Pending Head" в контексте систем контроля версий (VCS). Автор описывает, что "Pending Head" - это временный коммит, который позволяет разработчикам работать с изменениями, не внося их непосредственно в основную ветку кода. Статья обсуждает преимущества использования "Pending Head" и предоставляет рекомендации по его правильному использованию в разработке программного обеспечения. [2007]
SelfTestingCode
Статья объясняет, почему и как разработчики должны создавать код, способный проводить самопроверку, для повышения надежности и устойчивости программного обеспечения. [2014]
TechnicalDebt
Статья обсуждает понятие технического долга в разработке программного обеспечения и объясняет, как его правильное управление и минимизация могут способствовать улучшению качества и эффективности проектов.

Continuous Integration

Continuous Integration
Continuous Integration (непрерывная интеграция) - это практика разработки программного обеспечения, которая заключается в частом и автоматизированном слиянии и тестировании изменений в кодовой базе разработчиков для обеспечения раннего обнаружения и решения проблем интеграции.
Статья на сайте Мартина Фаулера "Continuous Integration" подробно объясняет принципы и преимущества Continuous Integration, а также рассматривает практические аспекты его реализации, включая инструменты, процессы и лучшие практики, необходимые для успешной реализации CI в разработческой команде. [2006]

Введение в Continuous Integration

Инструменты

В статье Top 8 Continuous Integration Tools [2023] представлен следующий краткий перечень решений для Continuous Integration:

Jenkins
Мощный и гибкий инструмент с большим набором плагинов и расширенными возможностями настройки.
Travis CI
Облачная CI-платформа, специализирующаяся на проектах с открытым исходным кодом.
CircleCI
Облачная CI-платформа с простым конфигурированием и поддержкой множества языков и фреймворков.
GitLab CI/CD
Интегрированный инструмент CI/CD, предоставляющий широкий функционал для автоматизации процессов.
TeamCity
Мощная система CI/CD с широким спектром функций и инструментов для сборки и развертывания.
Bamboo
Инструмент CI/CD от Atlassian, интегрирующийся с другими продуктами Atlassian для непрерывного развертывания.
Azure Pipelines
Облачная CI/CD-платформа от Microsoft Azure с гибкими возможностями и интеграцией с другими сервисами Azure.
GoCD
Инструмент с открытым исходным кодом, специализирующийся на создании и управлении непрерывными процессами доставки.

Continuous Delivery

Continuous Delivery

Deployment Pipeline

  • Continuous Deployment means that every change goes through the pipeline and automatically gets put into production, resulting in many production deployments every day. Continuous Delivery just means that you are able to do frequent deployments but may choose not to do it, usually due to businesses preferring a slower rate of deployment. In order to do Continuous Deployment you must be doing Continuous Delivery.