为什么我的 gitlab 管道因 rsync 错误而失败

fkl*_*ent 5 pipeline gitlab gitlab-ci

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

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/
Run Code Online (Sandbox Code Playgroud)

现在我收到这个错误:

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

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

Von*_*onC 0

sshpass在文件中很少使用gitlab-ci.yml
更常见的是使用 ssh 代理(如果您的私钥受密码保护),如此处所示

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/
Run Code Online (Sandbox Code Playgroud)

使用私钥的掩码变量检查此方法是否更可靠。