Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. HOST_USER := $(shell whoami)
  2. .PHONY: build
  3. build:
  4. mkdir -p build
  5. docker run \
  6. --rm \
  7. -e HOST_USER=$(HOST_USER) \
  8. -v $(PWD):/build \
  9. -w /build \
  10. golang \
  11. bash -c 'go mod vendor && go build -mod=vendor -o espressod cmd/main.go'
  12. docker run \
  13. --rm \
  14. -e HOST_USER=$(HOST_USER) \
  15. -e GOOS=linux \
  16. -e GOARCH=arm \
  17. -e GOARM=5 \
  18. -v $(PWD):/build \
  19. -w /build \
  20. golang \
  21. bash -c 'go mod vendor && go build -mod=vendor -o espressod_armv5 cmd/main.go'
  22. check: go_fmt go_lint go_vet
  23. go_fmt:
  24. docker run \
  25. --rm \
  26. -v $(PWD):/installer \
  27. -w /installer \
  28. golang \
  29. bash -c "find . -path ./vendor -prune -o -name '*.go' -exec gofmt -l {} \; | tee fmt.out && if [ -s fmt.out ] ; then exit 1; fi "
  30. go_vet:
  31. docker run\
  32. --rm \
  33. -v $(PWD):/installer \
  34. -w /installer \
  35. golang \
  36. bash -c "go vet ./..."
  37. go_lint:
  38. docker run \
  39. --rm \
  40. -v $(PWD):/installer \
  41. -w /installer \
  42. golang \
  43. bash -c 'go get golang.org/x/lint/golint && go list ./... | xargs -L1 golint -set_exit_status'
  44. run:
  45. docker run \
  46. --rm \
  47. -v $(PWD):/build \
  48. -w /build \
  49. golang \
  50. bash -c 'go run .'
  51. docker:
  52. docker build -t astoria-hc:latest . < Dockerfile
  53. deploy:
  54. scp espressod_armv5 pi@astoria:espressod_armv5
  55. clean:
  56. rm -f main
  57. rm -f espressod
  58. rm -f espressod_armv5
  59. rm -rf build