forked from mystiq/dex
391dc51c13
This PR reworks the web layout so static files can be provided and a "themes" directory to allow a certain degree of control over logos, styles, etc. This PR does NOT add general support for frontend customization, only enough to allow us to start exploring theming internally. The dex binary also must now be run from the root directory since templates are no longer "compiled into" the binary. The docker image has been updated with frontend assets.
102 lines
2.7 KiB
Makefile
102 lines
2.7 KiB
Makefile
PROJ=dex
|
|
ORG_PATH=github.com/coreos
|
|
REPO_PATH=$(ORG_PATH)/$(PROJ)
|
|
export PATH := $(PWD)/bin:$(PATH)
|
|
|
|
VERSION=$(shell ./scripts/git-version)
|
|
|
|
DOCKER_REPO=quay.io/coreos/dex
|
|
DOCKER_IMAGE=$(DOCKER_REPO):$(VERSION)
|
|
|
|
$( shell mkdir -p bin )
|
|
$( shell mkdir -p _output/images )
|
|
$( shell mkdir -p _output/bin )
|
|
|
|
user=$(shell id -u -n)
|
|
group=$(shell id -g -n)
|
|
|
|
export GOBIN=$(PWD)/bin
|
|
# Prefer ./bin instead of system packages for things like protoc, where we want
|
|
# to use the version dex uses, not whatever a developer has installed.
|
|
export PATH=$(GOBIN):$(shell printenv PATH)
|
|
export GO15VENDOREXPERIMENT=1
|
|
|
|
LD_FLAGS="-w -X $(REPO_PATH)/version.Version=$(VERSION)"
|
|
|
|
build: bin/dex bin/example-app
|
|
|
|
bin/dex: FORCE
|
|
@go install -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
|
|
|
|
bin/example-app: FORCE
|
|
@go install -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/example-app
|
|
|
|
.PHONY: release-binary
|
|
release-binary:
|
|
@go build -o _output/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
|
|
|
|
test:
|
|
@go test -v -i $(shell go list ./... | grep -v '/vendor/')
|
|
@go test -v $(shell go list ./... | grep -v '/vendor/')
|
|
|
|
testrace:
|
|
@go test -v -i --race $(shell go list ./... | grep -v '/vendor/')
|
|
@go test -v --race $(shell go list ./... | grep -v '/vendor/')
|
|
|
|
vet:
|
|
@go vet $(shell go list ./... | grep -v '/vendor/')
|
|
|
|
fmt:
|
|
@go fmt $(shell go list ./... | grep -v '/vendor/')
|
|
|
|
lint:
|
|
@for package in $(shell go list ./... | grep -v '/vendor/' | grep -v '/api'); do \
|
|
golint -set_exit_status $$package $$i || exit 1; \
|
|
done
|
|
|
|
_output/bin/dex:
|
|
# Using rkt to build the dex binary.
|
|
@./scripts/rkt-build
|
|
@sudo chown $(user):$(group) _output/bin/dex
|
|
|
|
_output/images/library-alpine-3.4.aci:
|
|
@mkdir -p _output/images
|
|
# Using docker2aci to get a base ACI to build from.
|
|
@docker2aci docker://alpine:3.4
|
|
@mv library-alpine-3.4.aci _output/images/library-alpine-3.4.aci
|
|
|
|
.PHONY: aci
|
|
aci: clean-release _output/bin/dex _output/images/library-alpine-3.4.aci
|
|
# Using acbuild to build a application container image.
|
|
@sudo ./scripts/build-aci ./_output/images/library-alpine-3.4.aci
|
|
@sudo chown $(user):$(group) _output/images/dex.aci
|
|
@mv _output/images/dex.aci _output/images/dex-$(VERSION)-linux-amd64.aci
|
|
|
|
.PHONY: docker-image
|
|
docker-image: clean-release _output/bin/dex
|
|
@sudo docker build -t $(DOCKER_IMAGE) .
|
|
|
|
.PHONY: grpc
|
|
grpc: api/api.pb.go
|
|
|
|
api/api.pb.go: api/api.proto bin/protoc bin/protoc-gen-go
|
|
@protoc --go_out=plugins=grpc:. api/*.proto
|
|
|
|
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
|
|
|
|
clean: clean-release
|
|
@rm -rf bin/
|
|
|
|
.PHONY: clean-release
|
|
clean-release:
|
|
@rm -rf _output/
|
|
|
|
testall: testrace vet fmt lint
|
|
|
|
FORCE:
|
|
|
|
.PHONY: test testrace vet fmt lint testall
|