Проблема при извлечении данных, когда я пытаюсь выполнить автоматическое развертывание через gitlab

# #ssh #gitlab #gitlab-ci

Вопрос:

Я создал сценарий развертывания через ssh и gitlab, но когда выполняется сценарий git pull, все выглядит как уже обновленное, и я даже не могу запустить команды composer

 before_script:  - apt-get update -qq  - apt-get install -qq git  # Setup SSH deploy keys  - 'which ssh-agent || ( apt-get install -qq openssh-client )'  - eval $(ssh-agent -s)  - ssh-add lt;(echo "$SSH_PRIVATE_KEY")  - mkdir -p ~/.ssh  - '[[ -f /.dockerenv ]] amp;amp; echo -e "Host *ntStrictHostKeyChecking nonn" gt; ~/.ssh/config'   deploy_staging:  type: deploy  environment:  name: staging  url: test.ro  script:  - ssh -p 28785 test@test "git checkout development amp;amp; git pull"  - cd server  - composer i  - composer optimize  - php artisan migrate  - cd ..  - cd client  - npm i  - npm run dev  - exit  only:  - development  
 $ apt-get update -qq $ apt-get install -qq git $ which ssh-agent || ( apt-get install -qq openssh-client ) /usr/bin/ssh-agent $ eval $(ssh-agent -s) Agent pid 266 $ ssh-add lt;(echo "$SSH_PRIVATE_KEY") Identity added: /dev/fd/63 (/dev/fd/63) $ mkdir -p ~/.ssh $ [[ -f /.dockerenv ]] amp;amp; echo -e "Host *ntStrictHostKeyChecking nonn" gt; ~/.ssh/config $ ssh -p 28785  $ git pull $ Already up to date  

Разве я не устанавливаю соединение через ssh нормально?

Ответ №1:

Сначала попробуйте заменить свой ssh-шаг на:

 ssh -p 28785 test@test "id -a amp;amp; ls -alrth amp;amp; pwd amp;amp; git status amp;amp; git remote -v"  

Таким образом, вы можете быть уверены, что вы:

  • в правильном пути (который по умолчанию /home/test был бы нечетным путем для представления Git)
  • в реальном локальном репозитории Git и в правой ветви (отсюда git status )
  • ссылка на нужный удаленный сервер (имеется в виду удаленный репозиторий, в который вы отправили новые коммиты, которые следует удалить)