Github Action:rsync 设置不断失败

bha*_*anu 1 github github-actions

我有一个工作流程,deployment.yml如下所示:

name: Deployment

on:
  push:
    branches: [ production ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-node@v1.1.0
      with:
        version: 10.x

    - name: Install dependencies
      run: |
        composer install -o
        yarn
    - name: Build
      run: yarn build:production
    
    - name: Sync
      env:
        dest: 'user@server:/var/www/html/wp-content/themes/theme-name'
      run: |
        echo "${{secrets.DEPLOY_KEY}}" > deploy_key
        chmod 600 ./deploy_key
        rsync -chav --delete \
          -e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
          --exclude /deploy_key \
          --exclude /.git/ \
          --exclude /.github/ \
          --exclude /node_modules/ \
          ./ ${{env.dest}}
Run Code Online (Sandbox Code Playgroud)

执行此操作时,我在步骤中收到错误Sync,并显示以下错误。

Run echo "***" > deploy_key
  echo "***" > deploy_key
  chmod 600 ./deploy_key
  rsync -chav --delete \
    -e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
    --exclude /deploy_key \
    --exclude /.git/ \
    --exclude /.github/ \
    --exclude /node_modules/ \
    ./ root@111.11.111.111:/var/www/html/wp-content/themes/theme-name
  shell: /bin/bash -e {0}
  env:
    dest: root@159.89.165.152:/var/www/html/wp-content/themes/theme-name
Warning: Permanently added '111.11.111.111' (ECDSA) to the list of known hosts.
Load key "./deploy_key": invalid format
Permission denied, please try again.
Permission denied, please try again.
root@111.11.111.111: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]
##[error]Process completed with exit code 255.
Run Code Online (Sandbox Code Playgroud)

这是一个带有 SSH 密钥集并添加到授权密钥的 Digital Ocean Droplet。在我的存储库设置中,我将它们添加到:

  1. 部署密钥:作为 DEPLOY_KEY
  2. Secrets : as DEPLOY_KEY [我添加此内容是因为之前错误区域中的部署密钥输出为空。]

是我的设置错误吗?

bha*_*anu 6

我发现我的代码没有运行的原因是我不断在我的秘密中添加公钥DEPLOY_KEY

你必须添加你的private key作为秘密。另外,您不应该忘记将您的公众添加到列表中authorized_keys,否则您的操作将会失败。

deployment.yml这是我使用的最终文件。

name: Deployment

on:
  push:
    branches: [ production ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-node@v1.1.0
      with:
        version: 12.x

    - name: Install dependencies
      run: |
        composer install -o
        yarn
    - name: Build
      run: yarn build
      
    - name: Sync
      env:
        dest: 'root@111.11.111.111:/var/www/html/wp-content/themes/theme-name' // Change here
      run: |
        echo "${{secrets.DEPLOY_KEY}}" > deploy_key
        chmod 600 ./deploy_key
        rsync -chav --delete \
          -e 'ssh -i ./deploy_key -o StrictHostKeyChecking=no' \
          --exclude /deploy_key \
          --exclude /.git/ \
          --exclude /.github/ \
          --exclude /node_modules/ \
          ./ ${{env.dest}}
Run Code Online (Sandbox Code Playgroud)

此特定部署用于sage - 一个 WordPress 入门主题,并部署在具有openlitespeed服务器的数字海洋 Droplet 中。

我写了一篇文章解释了 sage-roots 的完整部署过程。