为什么我的gitlab管道失败并出现rsync错误

时间:2019-10-11 14:01:48

标签: gitlab gitlab-ci pipeline

我在另一个项目中使用了管道,并且在这里起作用了。
但是现在我有一个问题(我使用的设置完全相同)

staging_upload:
  stage: staging
  only:
    refs:
      - develop
      - schedules
  script:
    - sshpass -e rsync -avz --progress --exclude='.git' --exclude='.gitlab-ci.yml' . $SSH_USERNAME@j$HOST:/home/xy/html/project/staging/

现在我收到此错误:

rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(644) [sender=3.1.2]

有人知道这里出了什么问题吗?

2 个答案:

答案 0 :(得分:0)

sshpassgitlab-ci.yml个文件中非常rarely used
Much more frequent是ssh代理的使用(如果您的私钥受密码保护),as seen here

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - 'which rsync || ( apt-get update -y && apt-get install rsync -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY_DEV")
  - ssh-add <(echo "$SSH_PRIVATE_KEY_PROD")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo "$SSH_HOSTKEYS" > ~/.ssh/known_hosts'

dev:
  script:
    - rsync --exclude=.gitlab-ci.yml --exclude=.git -avx -e ssh `pwd`/ dbasdev@iaas.ouce.ox.ac.uk:/var/www/html/it_dev/it_monitor_app/auth/

使用masked variable作为私钥,检查这种方法是否更可靠。

答案 1 :(得分:0)

尝试使用-v(或2)运行脚本。详细的输出将告诉您停止的位置/原因。另外,请验证您的转义字符和绝对路径。这是rsync停顿的常见原因。