Для настройки деплоя приложения на два сервера с помощью GitLab CI, следуйте следующим шагам:
1. Создайте файл .gitlab-ci.yml в корневой директории вашего проекта и добавьте в него следующий код:
```yaml
stages:
- deploy
deploy_production:
stage: deploy
script:
- ssh user@production-server 'cd /path/to/app && git pull origin master && restart_app_command'
only:
- master
deploy_staging:
stage: deploy
script:
- ssh user@staging-server 'cd /path/to/app && git pull origin master && restart_app_command'
only:
- develop
```
2. Замените `user`, `production-server`, `staging-server`, `/path/to/app`, `restart_app_command` на соответствующие значения для ваших серверов и приложения.
3. Зарегистрируйте SSH-ключ вашего GitLab CI/CD в авторизованных ключах на ваших серверах.
4. Создайте переменные среды `CI_DEPLOY_USER`, `CI_PROD_SERVER`, `CI_STAGING_SERVER`, `CI_PROD_PATH`, `CI_STAGING_PATH`, `CI_RESTART_COMMAND` в настройках проекта на GitLab и заполните их соответствующими значениями.
Для настройки CI/CD с использованием GitLab для автоматического деплоя приложения на стейжинг сервер, следуйте следующим шагам:
1. Добавьте шаг деплоя в файл .gitlab-ci.yml:
```yaml
stages:
- deploy
deploy_staging:
stage: deploy
script:
- ssh user@staging-server 'cd /path/to/app && git pull origin develop && restart_app_command'
only:
- develop
```
2. Замените `user`, `staging-server`, `/path/to/app`, `restart_app_command` на соответствующие значения для вашего стейжинг сервера и приложения.
3. Зарегистрируйте SSH-ключ вашего GitLab CI/CD в авторизованных ключах на вашем сервере.
4. Создайте переменные среды `CI_DEPLOY_USER`, `CI_STAGING_SERVER`, `CI_STAGING_PATH`, `CI_RESTART_COMMAND` в настройках проекта на GitLab и заполните их соответствующими значениями.
Теперь при каждом коммите в ветку master (для продакшн серверов) или develop (для стейжинг сервера), GitLab CI/CD будет автоматически деплоить ваше приложение на указанные серверы.