Невозможно закончить работу Gitlab-CI - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть настройка CI, которая развертывает изменения на сервере.Все работает отлично, изменения передаются на сервер, но когда все задачи завершены, бегун все еще ждет:

enter image description here

Что не так?Это должно быть закончено с успехом.

Вот .gitlab-ci.yml :

stages:
  - deploy
before_script:
  # Setup SSH deploy keys
  - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 --decode)

deploy_staging:
  type: deploy
  environment:
    name: staging
    url: example.com
  script:
    - ssh -o StrictHostKeyChecking=no root@example.com "cd public_html/gitlab-test && git checkout master && git pull origin master && exit"
  only:
    - master

Обновление:

Вывод:

Running with gitlab-runner 11.6.1 (8d829975)
  on Shared heeGPy6w
Using Shell executor...
Running on demeter...
Fetching changes...
HEAD is now at 4eaccda Update .gitlab-ci.yml
From https://git.example.com/user/ssh-test
   4eaccda..ce1729c  master     -> origin/master
Checking out ce1729c4 as master...
Skipping Git submodules setup
$ which ssh-agent || ( apt-get install -qq openssh-client )
/usr/bin/ssh-agent
$ eval $(ssh-agent -s)
Agent pid 14151
$ ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 --decode)
Identity added: /dev/fd/63 (/dev/fd/63)
$ ssh -o StrictHostKeyChecking=no root@example.com "cd public_html/gitlab-test && git checkout master && git pull origin master"
Already on 'master'
From https://git.example.com/user/ssh-test
 * branch            master     -> FETCH_HEAD
   4eaccda..ce1729c  master     -> origin/master
Updating 4eaccda..ce1729c
Fast-forward
 .gitlab-ci.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
$ exit 0

и после этого все еще жду ...

1 Ответ

0 голосов
/ 07 февраля 2019

Наконец, я решил свою проблему.

Причина была в строке - eval $(ssh-agent -s) - когда я это прокомментировал, работа могла быть закончена (но, конечно, соединение не работало).Итак, я попытался добавить команду killing в конце скрипта:

- eval $(ssh-agent -k)

Это было решение.Теперь все работает отлично.

Наконец код:

stages:
  - deploy
before_script:
  # Setup SSH deploy keys
  - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  - eval $(ssh-agent)
  - ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 --decode)

deploy_staging:
  type: deploy
  environment:
    name: staging
    url: example.com
  script:
    - ssh -o StrictHostKeyChecking=no root@example.com "cd public_html/gitlab-test && git checkout master && git pull origin master && exit 0"
    - eval $(ssh-agent -k)
  only:
    - master
...