Add a Makefile, so one command is the whole check
Verifying a change meant four invocations — gofmt, go vet, go build, go test — and remembering the order. `make` is all of them with one exit code. gofmt needs the wrapper: it reports offending files on stdout and still exits 0, so a bare `gofmt -l .` in a target would never fail the build.
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
# One command before committing: make
|
||||||
|
#
|
||||||
|
# gofmt is first because a formatting failure is the cheapest to fix, and it is the only check that
|
||||||
|
# needs a wrapper — gofmt reports offending files on stdout and still exits 0.
|
||||||
|
.POSIX:
|
||||||
|
.PHONY: check fmt vet test build run
|
||||||
|
|
||||||
|
check: fmt vet test
|
||||||
|
|
||||||
|
fmt:
|
||||||
|
@out=$$(gofmt -l .); test -z "$$out" || { echo "not gofmt'd:"; echo "$$out"; exit 1; }
|
||||||
|
|
||||||
|
vet:
|
||||||
|
go vet ./...
|
||||||
|
|
||||||
|
test:
|
||||||
|
go test ./...
|
||||||
|
|
||||||
|
build:
|
||||||
|
go build -o levyraati26-go .
|
||||||
|
|
||||||
|
# Templates and migrations are embedded, so seeing a change means rebuilding.
|
||||||
|
run: build
|
||||||
|
./levyraati26-go
|
||||||
@@ -88,14 +88,16 @@ go run .
|
|||||||
Requires Go 1.27+, plus `ffmpeg`, `ffprobe`, and `yt-dlp` on `PATH`. There is nothing to start first:
|
Requires Go 1.27+, plus `ffmpeg`, `ffprobe`, and `yt-dlp` on `PATH`. There is nothing to start first:
|
||||||
the database is a file under `./storage`, created on the first run.
|
the database is a file under `./storage`, created on the first run.
|
||||||
|
|
||||||
Tests get a fresh database file in a temp directory each, so they need no setup and touch nothing:
|
Tests get a fresh database file in a temp directory each, so they need no setup and touch nothing.
|
||||||
|
`make` is everything that has to pass before a commit — formatting, `go vet`, and the tests:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go test ./...
|
make # gofmt -l, go vet, go test
|
||||||
|
make test # just the tests
|
||||||
```
|
```
|
||||||
|
|
||||||
Templates, stylesheet, and migrations are embedded with `embed.FS`, so a rebuild is needed to see
|
Templates, stylesheet, and migrations are embedded with `embed.FS`, so a rebuild is needed to see
|
||||||
template changes. `go build && ./levyraati` is the loop.
|
template changes. `make run` is the loop.
|
||||||
|
|
||||||
## Admin page
|
## Admin page
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user