Gitea, Drone CI, Hugo and Auto-deployment
By chimo on (updated on )Note: This is an update to my previous blog post "Git, Gogs, Jekyll and Auto-deployment" since I've changed things up in the last four years.
The Static Blog Generator
I've switched to Hugo from Jekyll. A few reason are:
- Hugo seemed to generate the static files faster (I didn't run benchmarks or anything)
- A single Go executable is easier to manage than Ruby environments (and the `bundle` thing, or whatever -- I don't really care)
- The Hugo file structure seems cleaner (although that might just be me having more experience with static site generators overall)
Publishing
I still just push to a git repository to trigger an update to the blog. I've switched my self-hosted git platform from Gogs to Gitea, however. The main reason is that, the development on Gogs stalled for a while and the community had some interesting ideas on the roadmap I wanted to play with.
The Hook
Instead of calling a local custom script on the post-receive git hook, I'm using Drone CI to run `hugo` and `scp` the results over to the live blog.
Since I'm switching everything to LXC containers, the blog and Gitea are in separate "environments" so I can't rely on the old post-receive git hook on Gitea to build the blog on-the-fly. Plus, this task is perfect for a CI pipeline and I've wanted to set something like this up for a while now. I'll probably end up using the pipeline for other things too.