builder.Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. GOOS?=$(shell go env GOOS)
  2. GOARCH?=$(shell go env GOARCH)
  3. EXTENSION :=
  4. ifeq ($(GOOS),windows)
  5. EXTENSION := .exe
  6. endif
  7. STATIC_FLAGS=CGO_ENABLED=0
  8. LDFLAGS := "-s -w \
  9. -X github.com/docker/ecs-plugin/cmd/commands.GitCommit=$(COMMIT) \
  10. -X github.com/docker/ecs-plugin/cmd/commands.Version=$(TAG)"
  11. GO_BUILD=$(STATIC_FLAGS) go build -trimpath -ldflags=$(LDFLAGS)
  12. BINARY=dist/docker-ecs
  13. BINARY_WITH_EXTENSION=$(BINARY)$(EXTENSION)
  14. export DOCKER_BUILDKIT=1
  15. all: build
  16. clean:
  17. rm -rf dist/
  18. generate: pkg/amazon/sdk/api_mock.go
  19. go generate ./...
  20. build: generate
  21. $(GO_BUILD) -v -o $(BINARY_WITH_EXTENSION) cmd/main/main.go
  22. cross:
  23. @GOOS=linux GOARCH=amd64 $(GO_BUILD) -v -o $(BINARY)-linux-amd64 cmd/main/main.go
  24. @GOOS=darwin GOARCH=amd64 $(GO_BUILD) -v -o $(BINARY)-darwin-amd64 cmd/main/main.go
  25. @GOOS=windows GOARCH=amd64 $(GO_BUILD) -v -o $(BINARY)-windows-amd64.exe cmd/main/main.go
  26. test: ## Run tests
  27. @$(STATIC_FLAGS) go test -cover $(shell go list ./... | grep -vE 'e2e')
  28. lint: ## Verify Go files
  29. $(STATIC_FLAGS) golangci-lint run --timeout 10m0s --config ./golangci.yaml ./...
  30. .PHONY: all clean build cross test dev lint