Найти в Дзене

GitLab CI: автоматизация сборки и доставки

Ручной деплой на сервер требует запоминания последовательности команд и несет риск ошибки из-за человеческого фактора. CI/CD-пайплайны делают процесс воспроизводимым: одна и та же последовательность шагов выполняется каждый раз. GitLab CI встроен в систему контроля версий, что позволяет привязать деплой к событиям в репозитории. ➤ Вариант 1 (Тесты и деплой на staging): # .gitlab-ci.yml stages: - test - deploy run_tests: stage: test script: - npm install - npm run test deploy_staging: stage: deploy script: - rsync -avz --delete ./ user@staging-server:/var/www/html/ only: - develop ➤ Вариант 2 (Ручной деплой на продакшн по тегу): deploy_production: stage: deploy script: - ansible-playbook -i prod.inventory deploy.yml only: - tags when: manual Пайплайн гарантирует, что код перед попаданием на продакшен проходит все необходимые проверки в одинаковом окружении. Кто выполняет деплой в вашей команде - разработчик или CI-система? P.S. В GitLab CI можно переиспользовать шаблоны чере

GitLab CI: автоматизация сборки и доставки

Ручной деплой на сервер требует запоминания последовательности команд и несет риск ошибки из-за человеческого фактора. CI/CD-пайплайны делают процесс воспроизводимым: одна и та же последовательность шагов выполняется каждый раз.

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

➤ Вариант 1 (Тесты и деплой на staging):

# .gitlab-ci.yml

stages:

- test

- deploy

run_tests:

stage: test

script:

- npm install

- npm run test

deploy_staging:

stage: deploy

script:

- rsync -avz --delete ./ user@staging-server:/var/www/html/

only:

- develop

➤ Вариант 2 (Ручной деплой на продакшн по тегу):

deploy_production:

stage: deploy

script:

- ansible-playbook -i prod.inventory deploy.yml

only:

- tags

when: manual

Пайплайн гарантирует, что код перед попаданием на продакшен проходит все необходимые проверки в одинаковом окружении.

Кто выполняет деплой в вашей команде - разработчик или CI-система?

P.S. В GitLab CI можно переиспользовать шаблоны через include, чтобы не дублировать код пайплайнов в разных проектах.

👉🏻 Я в Telegram - https://dzen.ru/id/686102a27e39653c3429f77f

👉🏻 Я в VK - vk.com/helcode

👉🏻 Я на Boosty - boosty.to/helcode