我正在尝试实现一个GitHub动作,可以在推送到主分支时将我的repo文件SCP到服务器上。我已经在Bitbucket Pipelines上设置了类似的环境,但现在我学习如何使用GitHub动作时,没有任何进展。
我的项目是一个简单的Node.js应用程序,我想简单地将所有文件复制到服务器上,然后运行一个post-scp脚本,在服务器上复制新文件后执行npm i
。只是希望在学习过程中保持简单。
我正在使用scp-files GitHub动作。这是我的文件:
name: Deploy to production
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
deploy:
name: SCP files to server
runs-on: ubuntu-latest
steps:
- name: SCP files via ssh key
uses: appleboy/scp-action@master
env:
USERNAME: ${{ secrets.USERNAME }}
HOST: ${{ secrets.HOST }}
KEY: ${{ secrets.SSH_DEPLOYMENT_KEY }}
with:
source: './*'
target: '/home/ubuntu/flatbread/'
这个操作可以完成设置作业
和构建appleboy/scp-action@master
。但是当运行appleboy/scp-action@master
时,它会出现错误。我收到的错误信息如下:
tar: empty archive
exit status 1
tar all files into /tmp/320558105/i2yG360Zje.tar
##[error]Docker run failed with exit code 1
我不太确定我做错了什么。即使我将“source:'./*'”更改为样本文件夹(即“source:app”),它仍然会给我相同的错误。
更新
如果我将“source:'./*'”更改为“source:'.'”,那么在没有更多的GitHub操作错误方面似乎行得通:
tar all files into /tmp/719605837/1uYygkf4Vn.tar
scp file to server.
create folder /home/***/flatbread/
untar file 1uYygkf4Vn.tar
remove file 1uYygkf4Vn.tar
================================================
Successfully executed transfer data to all host.
================================================
很遗憾,服务器上验证文件后并未进行任何更改。有任何想法为什么会这样?
appleboy/scp-action@master
操作有关的问题。您可以在该存储库中提交问题以获得更多关注。 - Patrick Quirk