加载中...

博客自动部署


之前一直把博客部署在 GitHub page 上,好处就是免费,缺点就是国内访问我的网站速度就很慢,刚好我的服务器一直闲置,就把博客同时备份到国内服务器上,加快国内访问的速度。

当然,不可能每次都去手动同步,为了实现自动化,解决方案采用 GitHub action 同步 Github page 到个人服务器。

在服务器设置 ftp 账号密码

我用的是宝塔的 pure-ftp,可以直接用宝塔创建 ftp 账号,根目录填写网站的目录

在 GitHub Marketplace 找到一个 FTP action

我试了几个 action,最后采用的是FTP Deploy

之后就是给博客仓库设置 secret,把服务器的 ip,ftp 的账号密码添加到里面。

然后在仓库的.github/workflows目录下创建ftp.yml 文件,填写以下配置,就实现了博客自动化部署。

on: push
name: 🚀 Deploy website on push
jobs:
  web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - name: 🚚 Get latest code
        uses: actions/checkout@v2.3.2

      - name: 📂 Sync files
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          protocol: ftp

把博客 push 到仓库,打开仓库的 action,可以看到,网站被传到服务器上了。

双线部署的结果

可以看到,国内服务器部署的话,基本都是绿的。

总结

因为我之前用的 travis-ci 自动化部署博客,所以为了实现这个 GitHub action,我走了不少弯路,但是把 hexo 生成博客也放在 GitHub action 上,就会简单很多。这里也赞叹下 GitHub action 的方便,以后再探索更多玩法。


文章作者: Muryor
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Muryor !
评论
  目录