forked from mystiq/dex
1a565266fc
Go 1.9 removed "./..." matching the vendor directory while Go 1.10 added build and test caching. This means we no longer need to grep out vendored matches (except for golint which doesn't implement the same behavior), and we no longer need to pre-build packages with "go build -i". https://golang.org/doc/go1.9#vendor-dotdotdot https://golang.org/doc/go1.10#build
85 lines
1.7 KiB
Makefile
85 lines
1.7 KiB
Makefile
PROJ=dex
|
|
ORG_PATH=github.com/dexidp
|
|
REPO_PATH=$(ORG_PATH)/$(PROJ)
|
|
export PATH := $(PWD)/bin:$(PATH)
|
|
|
|
VERSION ?= $(shell ./scripts/git-version)
|
|
|
|
DOCKER_REPO=quay.io/dexidp/dex
|
|
DOCKER_IMAGE=$(DOCKER_REPO):$(VERSION)
|
|
|
|
$( shell mkdir -p bin )
|
|
|
|
user=$(shell id -u -n)
|
|
group=$(shell id -g -n)
|
|
|
|
export GOBIN=$(PWD)/bin
|
|
|
|
LD_FLAGS="-w -X $(REPO_PATH)/version.Version=$(VERSION)"
|
|
|
|
build: bin/dex bin/example-app bin/grpc-client
|
|
|
|
bin/dex:
|
|
@go install -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
|
|
|
|
bin/example-app:
|
|
@go install -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/example-app
|
|
|
|
bin/grpc-client:
|
|
@go install -v -ldflags $(LD_FLAGS) $(REPO_PATH)/examples/grpc-client
|
|
|
|
.PHONY: release-binary
|
|
release-binary:
|
|
@go build -o /go/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
|
|
|
|
.PHONY: revendor
|
|
revendor:
|
|
@go mod tidy -v
|
|
@go mod vendor -v
|
|
@go mod verify
|
|
|
|
test:
|
|
@go test -v ./...
|
|
|
|
testrace:
|
|
@go test -v --race ./...
|
|
|
|
vet:
|
|
@go vet ./...
|
|
|
|
fmt:
|
|
@./scripts/gofmt ./...
|
|
|
|
lint: bin/golint
|
|
@./bin/golint -set_exit_status $(shell go list ./...)
|
|
|
|
.PHONY: docker-image
|
|
docker-image:
|
|
@sudo docker build -t $(DOCKER_IMAGE) .
|
|
|
|
.PHONY: proto
|
|
proto: bin/protoc bin/protoc-gen-go
|
|
@./bin/protoc --go_out=plugins=grpc:. --plugin=protoc-gen-go=./bin/protoc-gen-go api/*.proto
|
|
@./bin/protoc --go_out=. --plugin=protoc-gen-go=./bin/protoc-gen-go server/internal/*.proto
|
|
|
|
.PHONY: verify-proto
|
|
verify-proto: proto
|
|
@./scripts/git-diff
|
|
|
|
bin/protoc: scripts/get-protoc
|
|
@./scripts/get-protoc bin/protoc
|
|
|
|
bin/protoc-gen-go:
|
|
@go install -v $(REPO_PATH)/vendor/github.com/golang/protobuf/protoc-gen-go
|
|
|
|
bin/golint:
|
|
@go install -v $(REPO_PATH)/vendor/golang.org/x/lint/golint
|
|
|
|
clean:
|
|
@rm -rf bin/
|
|
|
|
testall: testrace vet fmt lint
|
|
|
|
FORCE:
|
|
|
|
.PHONY: test testrace vet fmt lint testall
|