0

Как настроить автоматическое развертывание проекта yii2 на рабочий сервер на gitlab push?Автоматическое развертывание на git push

Я нашел 2 связанных вещи: webhooks и gitlab-ci. Если я правильно понимаю, при использовании webhooks веб-сервер должен иметь доступ на запись к папке проекта, что плохо. Пытался настроить gitlab-ci с личным бегуном на сервере, но не смог.

В корневой папке репо есть 3 элемента: .gitlab-ci.yml и папка src и .git.

#.gitlab-ci.yml 
stages: 
    - deploy 

deploy: 
    stage: deploy 
    script: 
    - cd ./src && composer install 
    only: 
    - prod 

Существует yii2 basic проект в папке Src.

Примерно через 3 минуты после того, как я надавливаю на поддельную ветку, я получаю электронное сообщение с сообщением «Трубопровод успешно». Но файлы в папке сервера не обновляются. Я обнаружил, что где-то в/home/gitlab-runner/.. папке дерева есть копия проекта. Но мне нужно обновлять файлы в определенной папке. Итак, где и как настроить эту папку?

+0

В письме, в котором говорится, что трубопровод преуспел, вы можете щелкнуть ссылку, чтобы перейти в журнал сборки? Вероятно, у этого есть некоторая информация, которая была бы полезной для отладки этого. –

+0

@ConnorShea, да, журнал сборки выглядит как консольный вывод, и он очень помогает при настройке. – Ali

ответ

0

Я нашел решение экспериментальным путем:

#.gitlab-ci.yml 
stages: 
    - deploy 

deploy: 
    stage: deploy 
    script: 
    - composer --no-interaction --no-progress --prefer-dist --working-dir=src install 
    - cp -Rf ${CI_PROJECT_DIR} /path/on/server/ 
    only: 
    - prod 

Кроме этого я добавил пользователь gitlab-бегун группы пользователей веб-сервера. На сервере ubuntu с использованием этой команды:

sudo chmod g+w -R /path/on/server 
sudo usermod -a -G www-data gitlab-runner 

Я открыт для любых предложений.