Я хочу развернуть тестовое приложение ma из локального репозитория в репозиторий gitlab и с помощью gitlab ci перенести его на мой удаленный сервер. Соединение SSH работает, CI gitlab показывает, что задание выполнено, но код на удаленном сервере не обновляется.
Я сделал голое репо в: /home/repos/testDeploy.git
А папка для файлов находится в: /home/example.com/web/testDeploy
Я добавил
Мой файл .gitlab-ci.yml
stages:
- deploy
deployment:
stage: deploy
environment:
name: production
url: http://www.example.com/testDeploy
only:
- master
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- chmod 600 ~/.ssh/id_rsa_gitlab && chmod 700 ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
script:
- git remote add production ssh://user@server:port/home/repos/testDeploy.git
- git push -f production master
- echo "Deployed to production!"
Кроме того, у меня есть крюк после получения:
#!/bin/sh
git --git-dir=/home/repos/testDeploy.git --work-tree=/home/example.com/web/testDeploy checkout -f
Я делаю изменения в своем локальном репо, фиксирую и отправляю в мастер-источник в gitlab. Задание пройдено, но, как я уже упоминал выше, файл на удаленном сервере не обновляется.
Вывод задания gitlab:
Fetching changes...
HEAD is now at 595db67 as
Checking out 595db67b as master...
Skipping Git submodules setup
$ which ssh-agent || ( apt-get update -y && apt-get install openssh- client -y )
/usr/bin/ssh-agent
$ eval $(ssh-agent -s)
Agent pid 40589
$ chmod 600 ~/.ssh/id_rsa_gitlab && chmod 700 ~/.ssh
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ git branch
* (HEAD detached at 595db67)
master
production
$ git push -f production master
Everything up-to-date
$ echo "Deployed to production!"
Deployed to production!
Job succeeded
Что я делаю не так? Можете ли вы помочь мне разобраться? Спасибо за все ваши ответы.