CI/CD

CI/CD давно став звичною частиною розробки, але різні інструменти реалізують його по-різному. У цій категорії я ділюся власними спостереженнями про pipelines, автоматичні перевірки, збірку, деплой і все, що допомагає швидше отримувати зворотний зв'язок під час розробки.

using-a-release-branch-as-an-integration-boundary-cover.png
CI/CD

Release branch як інтеграційна одиниця, а не пачка окремих merge у development

Для великого релізу я не вливаю пов’язані задачі в development по одній. Спочатку вони збираються в окремій release branch, проходять спільну стабілізацію, а вже потім реліз рухається далі як одна перевірена одиниця.

63
laravel-maintenance-mode-controlled-503-cover.png
CI/CD

Laravel Maintenance Mode під час розгортання: контрольований 503 замість випадкових 500

Під час production-розгортання ICanUp я не хочу показувати користувачам напівоновлений Laravel-застосунок і випадкові помилки 500. На критичний період сайт переходить у режим технічних робіт із контрольованою відповіддю 503, попередньо підготовленою сторінкою, Retry-After та чітким правилом: якщо розгортання завершується помилкою, сайт не відкривається автоматично.

199
laravel-deployment-health-checks-rollback-cover.png
CI/CD

Laravel після розгортання: перевірки працездатності та безпечний відкат

Після успішного розгортання Laravel-застосунку я не вважаю production автоматично справним. У ICanUp після оновлення окремо перевіряю HTTP, завантаження Laravel, з’єднання з базою даних, frontend assets, Supervisor, queue worker, Reverb і commit SHA. Якщо ключова перевірка не проходить, процес має зупинитися, а відкат до попередньої стабільної версії не повинен вимагати ручного редагування файлів.

177
jira-gitlab-merge-request-status-automation-cover.png
CI/CD

Jira + GitLab Merge Requests: як я автоматизувала статуси задач і не зламала процес

У ICanUp я хотіла автоматично рухати Jira-задачу після створення та merge GitLab Merge Request, але не віддавати автоматизації весь життєвий цикл задачі. Розбираю, чому залишила лише два автоматичні переходи, як перевіряю target branch і поточний статус та чому повторний webhook не повинен рухати задачу вдруге.

224
vite-environment-variables-laravel-gitlab-ci-deployments.png
CI/CD

Vite environment variables у Laravel deployment: чому server .env було недостатньо

На сервері всі VITE_REVERB_* значення були в .env, але production bundle усе одно збирався без них. Розбираю, як я знайшла причину в GitLab CI build stage, перенесла build-time variables у правильний environment scope і додала fail-fast перевірки перед deployment.

222
laravel-ci-cd-real-project-pipeline-cover.png
CI/CD

CI/CD у Laravel-проєкті: що це і як він працює у моєму реальному проєкті

CI/CD для мене - це не просто автоматичний deploy. У своєму Laravel-проєкті я використовую pipeline, який послідовно перевіряє код, запускає тести, збирає frontend і тільки після цього дозволяє рухатися до deployment.

217