Makefile 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. .PHONY: deps build test bundle-webui clean-bundle bundle-swagger proto bundle build
  2. docker-build:
  3. docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm cadthecoder/ovpm-builder:latest
  4. docker-build-shell:
  5. docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm cadthecoder/ovpm-builder:latest /bin/bash
  6. development-deps:
  7. # grpc related dependencies
  8. go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
  9. go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
  10. go get -u github.com/golang/protobuf/protoc-gen-go
  11. # static asset bundling
  12. go get github.com/kevinburke/go-bindata/...
  13. # webui related dependencies
  14. pacman -Sy yarn
  15. test:
  16. go test -race -coverprofile=coverage.txt -covermode=atomic .
  17. proto:
  18. protoc -I api/pb/ -I$(shell go env GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis api/pb/user.proto api/pb/vpn.proto api/pb/network.proto api/pb/auth.proto --go_out=plugins=grpc:api/pb
  19. protoc -I api/pb/ -I$(shell go env GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis api/pb/user.proto api/pb/vpn.proto api/pb/network.proto api/pb/auth.proto --grpc-gateway_out=logtostderr=true:api/pb
  20. clean-bundle:
  21. @echo Cleaning up bundle/
  22. rm -rf bundle/
  23. mkdir -p bundle/
  24. bundle-webui:
  25. @echo Bundling webui
  26. yarn --cwd webui/ovpm/ install
  27. yarn --cwd webui/ovpm/ build
  28. cp -r webui/ovpm/build/* bundle
  29. bundle-swagger: proto
  30. protoc -I api/pb/ -I$(shell go env GOPATH)/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis api/pb/user.proto api/pb/vpn.proto api/pb/network.proto api/pb/auth.proto --swagger_out=logtostderr=true:bundle
  31. bundle: clean-bundle bundle-webui bundle-swagger
  32. go-bindata -pkg bundle -o bundle/bindata.go bundle/...
  33. build: bundle
  34. @echo Building
  35. rm -rf bin/
  36. mkdir -p bin/
  37. # CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o ./bin/ovpm ./cmd/ovpm
  38. # CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o ./bin/ovpmd ./cmd/ovpmd
  39. GOOS=linux go build -o ./bin/ovpm ./cmd/ovpm
  40. GOOS=linux go build -o ./bin/ovpmd ./cmd/ovpmd