Automating deployments
It’s not a good idea to repeat the quick start process every time you want to update your site. So let’s automate it!
Create your repository
First, create a repository on git.sr.ht or hg.sr.ht named after your website (e.g. “your-username.srht.site”), and push your website’s source code to it.
Writing the build manifest
We’ll be using builds.sr.ht to automate building and deploying our site. Create a file named “.build.yml” and fill it in with this template:
image: alpine/edge
oauth: pages.sr.ht/PAGES:RW
packages:
- hut
environment:
site: your-username.srht.site
tasks:
- package: |
cd $site
tar -cvz . > ../site.tar.gz
- upload: |
hut pages publish -d $site site.tar.gz
Update the site
variable to your desired website (e.g.
“your-username.srht.site”). You can also add additional steps under tasks
and package
to call a static site generator and bundle your website
differently. Once you’re done, commit this file to your repository and push. A
URL will be printed to your console which you can click on to follow the
progress on deploying your site. Once it’s done, that’s it - your site will be
re-published every time you push.
For more information about using builds.sr.ht, consult the builds.sr.ht documentation.