Непрерывная интеграция (CI)
CI — это процесс автоматизации сборки и тестирования кода при каждом изменении в репозитории.
CI Tools: GitHub Actions, GitLab CI, CircleCI, Jenkins, Travis CI. Best Practices: 1. Maintain a single source repository. 2. Automate the build. 3. Keep the build fast. 4. Test in a clone of the production environment. 5. Make it easy for everyone to get the latest executable.
graph LR
Center["Непрерывная интеграция (CI)"]:::main
Rel_encryption["encryption"]:::related -.-> Center
click Rel_encryption "/terms/encryption"
Rel_post_quantum_cryptography["post-quantum-cryptography"]:::related -.-> Center
click Rel_post_quantum_cryptography "/terms/post-quantum-cryptography"
Rel_homomorphic_encryption["homomorphic-encryption"]:::related -.-> Center
click Rel_homomorphic_encryption "/terms/homomorphic-encryption"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
Представь, что вы с друзьями собираете огромный пазл. Каждый раз, когда кто-то находит подходящий кусочек, специальный судья (CI) проверяет, действительно ли он подходит к общей картинке и не портит ли её. Если кусочек подошел — его приклеивают намертво.
🤓 Expert Deep Dive
Для опытных DevOps-инженеров CI — это управление состоянием сборочных узлов (Runners). Важно использовать 'эфимерные' среды (контейнеры), которые удаляются после каждой сборки, чтобы предотвратить накопление 'мусора' и ложные результаты тестов. Современные пайплайны также включают в себя 'Canary Analysis' и 'Blue-Green Deployment' (как часть CD), но всё начинается с качественной интеграции кода на этапе CI.