sorg
A Go-based build script that compiles my personal website. This is the site's second incarnation, with the original being a Ruby/Sintra stack (sorg = "static org").
The site deploys automatically from its CI build with GitHub Actions as changes are committed to the master branch.
Clone
git clone https://github.com/brandur/sorg.git
Build
Install Go 1.9+ and direnv, then:
cp .envrc.sample .envrc
direnv allow
# Compile Go executables.
make install
# Run an initial build of the site, look for build output in public/.
make build
# Watch for changes in Go files and/or content and recompile and rebuild when
# one occurs.
make loop
The project can be deployed to s3 using:
pip install awscli
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export S3_BUCKET=...
make deploy
Cached photos can be fetched using:
make photographs-download
Development
Run the entire lifecycle like in CI:
make
Run the test suite:
make test
Run a single package's test suite or single test:
go test ./markdown
go test ./markdown -run TestCollapseHTML
Get more verbose output while running tests:
go test -v ./markdown