使用Workflow自动上传文件
基本操作流程
- 设置服务器地址、用户名、密码和远程路径
 
1  | SERVER="your_server"  | 
- 设置本地文件夹路径
 
1  | LOCAL_FOLDER_PATH="/path/to/local/folder"  | 
- 使用 scp 命令上传文件夹
 
1  | sshpass -p "$PASSWORD" scp -r "$LOCAL_FOLDER_PATH""$USERNAME@$SERVER:$REMOTE_PATH"  | 
- 您可以使用 
GitHub Secrets来安全地存储敏感信息,例如密码、密钥或访问令牌等。下面是一个简单的例子,它演示了如何在工作流中使用GitHub Secrets来存储和使用SSH密码。 
- 在您的 GitHub 仓库中,导航到 
Settings选项卡,然后单击Secrets。 - 单击 
New repository secret按钮,然后输入一个名称(例如SSH_PASSWORD)和您的SSH密码。单击Add secret按钮保存您的密钥。 - 在您的工作流文件中,您可以使用 
${{ secrets.SSH_PASSWORD }}来引用您刚才存储的密钥。例如: 
1  | jobs:  | 
注解
在上面的示例中,我们使用
${{ secrets.SSH_PASSWORD }}来引用存储在GitHub Secrets中的SSH密码。这样,我们就可以在工作流中安全地使用这个密码,而不必担心泄露敏感信息。actions/checkout@v2是一个GitHub Action,它可以检出您的仓库代码。它的工作原理是使用git命令来克隆您的仓库到工作流运行环境中。默认情况下,它只会获取触发工作流的那个ref/SHA的单个提交。但您也可以通过设置fetch-depth: 0来获取所有分支和标签的所有历史记录¹。此外,这个
Action还会将身份验证令牌持久化到本地git配置中。这样,您的脚本就可以运行经过身份验证的git命令。在后续步骤中,该令牌会在后置作业清理期间被删除。您可以通过设置persist-credentials: false来选择退出¹。简而言之,actions/checkout@v2能够检出您的代码,是因为它使用了git命令来克隆您的仓库,并将身份验证令牌持久化到本地git配置中。希望这对您有所帮助!在上面给出的
shell脚本示例中,我们使用了sshpass命令来非交互式地提供SSH密码。这样,我们就可以在脚本中使用scp命令来上传文件夹,而不需要手动输入密码。如果您直接使用scp命令,那么在执行命令时,系统会提示您输入密码。这在交互式环境中是可以的,但在脚本中就不太方便了。为了避免这种情况,我们使用了sshpass命令来非交互式地提供密码。当然,除了使用密码登录,您还可以使用SSH密钥来进行身份验证。这种方法更安全,也更方便。如果您希望使用SSH密钥来进行身份验证,那么您就不需要使用sshpass命令了。