aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile59
1 files changed, 59 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9d82dd9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,59 @@
+BIN=img
+OUT=./bin/$(BIN)
+SERVER=./cmd/server/main.go
+
+GO_TEST=go test -v -timeout 100ms -shuffle on -parallel `nproc`
+GO_BUILD=go build -v
+GO_RUN=go run -v
+
+all: build sass
+
+build:
+ $(GO_BUILD) -o $(OUT) $(SERVER)
+
+run: sass
+ $(GO_RUN) $(SERVER)
+
+sass:
+ @mkdir -p static
+ sassc \
+ -I scss scss/main.scss static/main.css \
+ --style compressed
+
+test: test.unit test.integration
+
+test.all: gci test.unit test.integration lint
+
+test.integration:
+ $(GO_TEST) -tags=integration ./...
+
+test.unit:
+ $(GO_TEST) -tags=unit ./...
+
+gen:
+ go run -v \
+ ./cmd/ggen/...
+
+cover.%:
+ $(GO_TEST) \
+ -tags=$* \
+ -coverprofile=bin/cover \
+ ./...
+ go tool cover \
+ -html=bin/cover \
+ -o bin/cover.html
+ echo "open bin/cover.html"
+
+lint:
+ golangci-lint run \
+ --fix \
+ --config golangci.yml \
+ --verbose \
+ ./...
+
+gci:
+ find . \
+ -type f \
+ -name "*.go" \
+ -not -path "./vendor/*" \
+ -exec gci write -s standard -s default -s "prefix(git.sr.ht/~gabrielgio/img)" {} +