mirror of
https://github.com/by-jp/www.byjp.me.git
synced 2025-08-09 01:35:56 +01:00
This puts the framework for building a statically compiled agate into a scratch Docker image which can be run from fly.io (as well as the fly.toml that sets it up correctly). This doesn't seem to work on fly.io itself at the moment, so more tinkering soon, but it works locally.
74 lines
2.5 KiB
YAML
74 lines
2.5 KiB
YAML
# https://taskfile.dev
|
|
|
|
version: '3'
|
|
|
|
vars:
|
|
domain: www.byjp.me
|
|
gmi_domain: byjp.cc
|
|
puma_dev_tld: .test
|
|
|
|
env:
|
|
HUGO_INDIEKIT_URL: https://indiekit.byjp.me{{.DOMAIN_SUFFIX}}
|
|
HUGO_LAST_UPDATE_TIME:
|
|
sh: git log -1 --format=%cI
|
|
HUGO_LAST_UPDATE_HASH:
|
|
sh: git log -1 --format=%h
|
|
|
|
tasks:
|
|
check-links:
|
|
desc: Check URLs across my site for linkrot.
|
|
cmds:
|
|
- lychee --cache --require-https --config lychee.toml .
|
|
|
|
dev:
|
|
desc: Run a local server that auto-updates when files are edited. (Search won't work)
|
|
silent: true
|
|
vars:
|
|
port: 1313
|
|
cmds:
|
|
- |
|
|
[ -d "$HOME/.puma-dev/" ] && (echo {{ .port }} > $HOME/.puma-dev/{{ .domain }}) || echo "Puma dev not installed, https://{{ .domain }}{{ .puma_dev_tld }} will not work"
|
|
- hugo server -p {{ .port }} --minify --printUnusedTemplates -D --baseURL "https://{{ .domain }}{{ .puma_dev_tld }}" --appendPort=false
|
|
|
|
build:
|
|
desc: Builds the production-ready site in ./public/
|
|
vars:
|
|
cache: /tmp/hugo/cache
|
|
cmds:
|
|
- hugo --cacheDir {{ .cache }} --gc --minify --baseURL "https://{{ .domain }}"
|
|
- pagefind
|
|
|
|
import:
|
|
desc: Pulls information from various other sites/silos into this repo. Expects `./tools/.env` to be populated.
|
|
dir: tools/
|
|
cmds:
|
|
- go run ./import/omnivore ../
|
|
- go run ./import/webmentionio
|
|
|
|
gemini-reduce:
|
|
desc: Builds the gemini capsule, removing all HTML and HTML-specific files from ./public.
|
|
silent: true
|
|
cmds:
|
|
# Gemini has no Javascript (no client-side interactivity at all), so search is useless
|
|
- rm -rf ./public/search
|
|
# Remove www-specific files
|
|
- find -E ./public -regex '.*\.(html|js|css|css\.map|webmanifest|xml|xsl|ico|opml)' -type f -delete
|
|
# Remove specific unneeded files
|
|
- rm -rf ./public/favicon*.png ./public/_redirects ./public/{apple,android,mstile}*.png ./public/safari-pinned-tab.svg ./public/robots.txt
|
|
# Remove specific unneeded directories
|
|
- rm -rf ./public/.well-known/ ./public/fonts/ ./public/standalone/project-prime/
|
|
# Remove empty directories
|
|
- find ./public -type d -empty -delete
|
|
|
|
gemini-dev:
|
|
desc: Builds the site & starts a gemini server (on the default port) for it.
|
|
cmds:
|
|
- agate --content public --addr 0.0.0.0:1965 --ed25519 --only-tls13 --lang en-GB --hostname "{{ .gmi_domain }}{{ .puma_dev_tld }}" --central-conf
|
|
|
|
gemini-deploy:
|
|
desc: Builds, reduces, and deploys the gemini version of the site with fly.
|
|
deps:
|
|
- build
|
|
- gemini-reduce
|
|
cmds:
|
|
- fly deploy
|