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 in Travis as changes are committed to the master branch.
git clone https://github.com/brandur/sorg.git
Install Go 1.9+, direnv set up and run blackswan, then:
go get -u github.com/ddollar/forego
cp .envrc.sample .envrc
direnv allow
# Used to run the test suite.
createdb sorg-test
# Compile Go executables.
make install
# Run an initial build of the site, look for build output in public/.
forego run make build
# Watch for changes in Go files and/or content and recompile and rebuild when
# one occurs.
forego start
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
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
Dependencies are managed with dep. New ones are usually added with a basic
ensure
command:
dep ensure
Existing packages an be updated with an ensure -update
:
dep ensure -update github.com/foo/bar