Makefile 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. .PHONY: build format test coverage dev-run install root-install
  2. WEBSERVER = keiji
  3. SEED_CMD = keiji-ctl
  4. SWAG := $(shell command -v swag 2> /dev/null)
  5. ## Have to set the WEB_ROOT and DOMAIN_NAME environment variables when building
  6. build:
  7. mkdir -p ./build/linux/$(WEBSERVER) ./build/linux/$(SEED_CMD)
  8. go build -o ./build/linux/$(WEBSERVER)/$(WEBSERVER) ./cmd/$(WEBSERVER)/$(WEBSERVER).go && \
  9. go build -o ./build/linux/$(SEED_CMD)/$(SEED_CMD) ./cmd/$(SEED_CMD)/$(SEED_CMD).go
  10. root-install:
  11. cp ./build/linux/$(SEED_CMD)/$(SEED_CMD) /bin \
  12. && cp ./build/linux/$(WEBSERVER)/$(WEBSERVER) /bin
  13. # Build as an unprivileged user first; invoke this target as root (sudo make install).
  14. # Existing binaries and the vendor unit are replaced; configuration and data are not.
  15. install:
  16. @test "$$(id -u)" -eq 0 || { echo "Run sudo make install after make build" >&2; exit 1; }
  17. @test -f ./build/linux/$(WEBSERVER)/$(WEBSERVER) -a -f ./build/linux/$(SEED_CMD)/$(SEED_CMD) || { echo "Run make build first" >&2; exit 1; }
  18. ./deploy/setup.sh
  19. install -d -o root -g root -m 0755 /usr/local/bin /etc/systemd/system
  20. install -o root -g root -m 0755 ./build/linux/$(WEBSERVER)/$(WEBSERVER) /usr/local/bin/$(WEBSERVER)
  21. install -o root -g root -m 0755 ./build/linux/$(SEED_CMD)/$(SEED_CMD) /usr/local/bin/$(SEED_CMD)
  22. install -o root -g root -m 0644 ./deploy/keiji.service /etc/systemd/system/keiji.service
  23. @echo "Installed. Review /etc/keiji/keiji.env, then run systemctl daemon-reload and start keiji explicitly."
  24. format:
  25. go fmt ./...
  26. test:
  27. go test -v ./...
  28. coverage-html:
  29. mkdir -p coverage/
  30. go test -v ./... -covermode=count -coverpkg=./... -coverprofile coverage/coverage.out
  31. go tool cover -html coverage/coverage.out -o coverage/coverage.html
  32. coverage:
  33. go test ./... -cover
  34. dev-run:
  35. go build -o ./build/linux/$(WEBSERVER)/$(WEBSERVER) ./cmd/$(WEBSERVER)/$(WEBSERVER).go && \
  36. ./build/linux/$(WEBSERVER)/$(WEBSERVER) .env