GitHub Actions自动化部署初体验

之前每次改完博客都要手动 buildrsync 到服务器,步骤虽然不多,但重复多了也烦。今天学习了一下 GitHub Actions,把部署流程自动化了。

核心思路很简单:代码 pushmain 分支 → 触发 workflow → 执行 hugo 构建 → rsyncVPS

.github/workflows/deploy.yml 的关键配置:

on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: peaceiris/actions-hugo@v2
      - run: hugo --minify
      - run: rsync -avz ./public/ user@host:/var/www/...

踩了一个坑:rsync 需要 SSH 密钥,要把私钥存到仓库的 Secrets 里,然后在 workflow 里引用。一开始密钥格式没弄对,报错 Load key invalid format,后来删掉多余的换行才解决。


现在每次写完文章,git push 之后等一分钟,网站就自动更新了。自动化果然是第一生产力。