参考https://blog.lancitou.net/using-github-actions-to-deploy-hugo-blog-to-self-hosted-vps/
和https://axiaoxin.com/article/255/
,主要是利用github actions来完成。
首先要在服务器上生成一对密钥供ssh访问,需要将该密钥对的公钥放到authorized_keys中。
创建的workflow工作流为
name: deploy hexo
on:
push:
branches: [ master ] # main分支上push触发部署
jobs:
build:
# 在ubuntu上进行构建操作
runs-on: ubuntu-latest
steps:
# 拉取代码
- uses: actions/checkout@v2
# 通过ssh远程执行命令重启vps上的服务
- name: SSH Remote Commands
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.REMOTE_HOST }} # Secrets中的配置:vps IP地址
username: ${{ secrets.REMOTE_USER }} # Secrets中的配置:vps 登录用户名
port: ${{ secrets.REMOTE_PORT }} # Secrets中的配置:vps 端口
key: ${{ secrets.SERVER_SSH_KEY }} # Secrets中的配置:vps 上创建的ssh key的私钥内容
script: ${{ secrets.AFTER_COMMAND }} # Secrets中的配置:scp二进制文件到vps服务器上后需要执行的相关shell命令重启服务
然后创建对应的密码。
之后在每次执行hexo d
时,会上传到githubpage上,同时会触发这个工作流,更新vps上的内容。
经过测试,不行。
最终参考这里的方法使用rsync实现目的。
挖个坑,之后把这篇文章补充完整,用来记录学习GitHub action的使用和记录这次晚上摸鱼的事情。