GitHub Actions自动化部署初体验
之前每次改完博客都要手动 build 再 rsync 到服务器,步骤虽然不多,但重复多了也烦。今天学习了一下 GitHub Actions,把部署流程自动化了。
核心思路很简单:代码 push 到 main 分支 → 触发 workflow → 执行 hugo 构建 → rsync 到 VPS。
.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 之后等一分钟,网站就自动更新了。自动化果然是第一生产力。