clean up Makefile (#487)
This commit is contained in:
parent
d150cf6dde
commit
00358fc368
176
Makefile
176
Makefile
@ -1,6 +1,3 @@
|
|||||||
.PHONY: test lint proto check-copyrights build-dev-deps
|
|
||||||
|
|
||||||
|
|
||||||
GO_VERSION ?= 1.11
|
GO_VERSION ?= 1.11
|
||||||
GOOS ?= linux
|
GOOS ?= linux
|
||||||
GOARCH ?= amd64
|
GOARCH ?= amd64
|
||||||
@ -21,58 +18,67 @@ endif
|
|||||||
DOCKER_BUILD := docker build \
|
DOCKER_BUILD := docker build \
|
||||||
--build-arg GO_VERSION=${GO_VERSION}
|
--build-arg GO_VERSION=${GO_VERSION}
|
||||||
|
|
||||||
lint: check-copyrights
|
.DEFAULT_GOAL := help
|
||||||
@echo "Running ${@}"
|
.PHONY: help
|
||||||
@golangci-lint run
|
help:
|
||||||
|
@awk 'BEGIN { \
|
||||||
|
FS = ":.*##"; \
|
||||||
|
printf "\nUsage:\n make \033[36m<target>\033[0m\n"\
|
||||||
|
} \
|
||||||
|
/^[a-zA-Z_-]+:.*?##/ { \
|
||||||
|
printf " \033[36m%-17s\033[0m %s\n", $$1, $$2 \
|
||||||
|
} \
|
||||||
|
/^##@/ { \
|
||||||
|
printf "\n\033[1m%s\033[0m\n", substr($$0, 5) \
|
||||||
|
} ' $(MAKEFILE_LIST)
|
||||||
|
|
||||||
check-copyrights:
|
##@ Dependencies
|
||||||
@echo "Running ${@}"
|
|
||||||
@./scripts/check-for-header.sh
|
|
||||||
|
|
||||||
# Applies goimports to every go file (excluding vendored files)
|
.PHONY: build-dev-deps
|
||||||
goimports-fix:
|
build-dev-deps: ## Install dependencies for builds
|
||||||
goimports -w $$(find . -type f -name '*.go' -not -path "*/vendor/*")
|
|
||||||
|
|
||||||
proto:
|
|
||||||
@echo "Running ${@}"
|
|
||||||
./scripts/build-protos.sh
|
|
||||||
|
|
||||||
build-dev-deps:
|
|
||||||
go get github.com/mattn/goveralls
|
go get github.com/mattn/goveralls
|
||||||
go get golang.org/x/tools/cover
|
go get golang.org/x/tools/cover
|
||||||
go get github.com/modocache/gover
|
go get github.com/modocache/gover
|
||||||
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ${GOPATH}/bin v1.10.2
|
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ${GOPATH}/bin v1.10.2
|
||||||
|
|
||||||
test:
|
.PHONY: lint
|
||||||
|
lint: check-copyrights ## Analyze and find programs in source code
|
||||||
|
@echo "Running ${@}"
|
||||||
|
@golangci-lint run
|
||||||
|
|
||||||
|
.PHONY: check-copyrights
|
||||||
|
check-copyrights: ## Check source files for copyright headers
|
||||||
|
@echo "Running ${@}"
|
||||||
|
@./scripts/check-for-header.sh
|
||||||
|
|
||||||
|
.PHONY: goimports-fix
|
||||||
|
goimports-fix: ## Applies goimports to every go file (excluding vendored files)
|
||||||
|
goimports -w $$(find . -type f -name '*.go' -not -path "*/vendor/*")
|
||||||
|
|
||||||
|
.PHONY: proto
|
||||||
|
proto: ## Rebuild protobuf files
|
||||||
|
@echo "Running ${@}"
|
||||||
|
./scripts/build-protos.sh
|
||||||
|
|
||||||
|
##@ Test
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: ## Run tests on source code (travis)
|
||||||
go test -race -v -cover -coverprofile=.coverprofile ./...
|
go test -race -v -cover -coverprofile=.coverprofile ./...
|
||||||
@echo done
|
@echo done
|
||||||
|
|
||||||
test-captplanet:
|
.PHONY: test-captplanet
|
||||||
|
test-captplanet: ## Test source with captain planet (travis)
|
||||||
@echo "Running ${@}"
|
@echo "Running ${@}"
|
||||||
@./scripts/test-captplanet.sh
|
@./scripts/test-captplanet.sh
|
||||||
|
|
||||||
test-docker:
|
.PHONY: test-docker
|
||||||
|
test-docker: ## Run tests in Docker
|
||||||
docker-compose up -d --remove-orphans test
|
docker-compose up -d --remove-orphans test
|
||||||
docker-compose run test make test
|
docker-compose run test make test
|
||||||
|
|
||||||
test-docker-clean:
|
|
||||||
-docker-compose down --rmi all
|
|
||||||
|
|
||||||
images: satellite-image storagenode-image uplink-image
|
|
||||||
echo Built version: ${TAG}
|
|
||||||
|
|
||||||
.PHONY: satellite-image
|
|
||||||
satellite-image:
|
|
||||||
${DOCKER_BUILD} -t storjlabs/satellite:${TAG}${CUSTOMTAG} -f cmd/satellite/Dockerfile .
|
|
||||||
.PHONY: storagenode-image
|
|
||||||
storagenode-image:
|
|
||||||
${DOCKER_BUILD} -t storjlabs/storagenode:${TAG}${CUSTOMTAG} -f cmd/storagenode/Dockerfile .
|
|
||||||
.PHONY: uplink-image
|
|
||||||
uplink-image:
|
|
||||||
${DOCKER_BUILD} -t storjlabs/uplink:${TAG}${CUSTOMTAG} -f cmd/uplink/Dockerfile .
|
|
||||||
|
|
||||||
.PHONY: all-in-one
|
.PHONY: all-in-one
|
||||||
all-in-one:
|
all-in-one: ## Deploy docker images with one storagenode locally
|
||||||
if [ -z "${VERSION}" ]; then \
|
if [ -z "${VERSION}" ]; then \
|
||||||
$(MAKE) images -j 3 \
|
$(MAKE) images -j 3 \
|
||||||
&& export VERSION="${TAG}"; \
|
&& export VERSION="${TAG}"; \
|
||||||
@ -81,39 +87,21 @@ all-in-one:
|
|||||||
&& scripts/fix-mock-overlay \
|
&& scripts/fix-mock-overlay \
|
||||||
&& docker-compose up storagenode satellite uplink
|
&& docker-compose up storagenode satellite uplink
|
||||||
|
|
||||||
push-images:
|
##@ Build
|
||||||
docker tag storjlabs/satellite:${TAG} storjlabs/satellite:latest
|
|
||||||
docker push storjlabs/satellite:${TAG}
|
|
||||||
docker push storjlabs/satellite:latest
|
|
||||||
docker tag storjlabs/storagenode:${TAG} storjlabs/storagenode:latest
|
|
||||||
docker push storjlabs/storagenode:${TAG}
|
|
||||||
docker push storjlabs/storagenode:latest
|
|
||||||
docker tag storjlabs/uplink:${TAG} storjlabs/uplink:latest
|
|
||||||
docker push storjlabs/uplink:${TAG}
|
|
||||||
docker push storjlabs/uplink:latest
|
|
||||||
|
|
||||||
ifeq (${BRANCH},master)
|
.PHONY: images
|
||||||
clean-images:
|
images: satellite-image storagenode-image uplink-image ## Build satellite, storagenode, and uplink Docker images
|
||||||
-docker rmi storjlabs/satellite:${TAG} storjlabs/satellite:latest
|
echo Built version: ${TAG}
|
||||||
-docker rmi storjlabs/storagenode:${TAG} storjlabs/storagenode:latest
|
|
||||||
-docker rmi storjlabs/uplink:${TAG} storjlabs/uplink:latest
|
|
||||||
else
|
|
||||||
clean-images:
|
|
||||||
-docker rmi storjlabs/satellite:${TAG}
|
|
||||||
-docker rmi storjlabs/storagenode:${TAG}
|
|
||||||
-docker rmi storjlabs/uplink:${TAG}
|
|
||||||
endif
|
|
||||||
|
|
||||||
install-deps:
|
.PHONY: satellite-image
|
||||||
go get -u -v golang.org/x/vgo
|
satellite-image: ## Build satellite Docker image
|
||||||
cd vgo install ./...
|
${DOCKER_BUILD} -t storjlabs/satellite:${TAG}${CUSTOMTAG} -f cmd/satellite/Dockerfile .
|
||||||
|
.PHONY: storagenode-image
|
||||||
.PHONY: deploy
|
storagenode-image: ## Build storagenode Docker image
|
||||||
deploy:
|
${DOCKER_BUILD} -t storjlabs/storagenode:${TAG}${CUSTOMTAG} -f cmd/storagenode/Dockerfile .
|
||||||
for deployment in $$(kubectl --context nonprod -n v3 get deployment -l app=storagenode --output=jsonpath='{.items..metadata.name}'); do \
|
.PHONY: uplink-image
|
||||||
kubectl --context nonprod --namespace v3 patch deployment $$deployment -p"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"storagenode\",\"image\":\"storjlabs/storagenode:${TAG}\"}]}}}}" ; \
|
uplink-image: ## Build uplink Docker image
|
||||||
done
|
${DOCKER_BUILD} -t storjlabs/uplink:${TAG}${CUSTOMTAG} -f cmd/uplink/Dockerfile .
|
||||||
kubectl --context nonprod --namespace v3 patch deployment satellite -p"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"satellite\",\"image\":\"storjlabs/satellite:${TAG}\"}]}}}}"
|
|
||||||
|
|
||||||
.PHONY: binary
|
.PHONY: binary
|
||||||
binary: CUSTOMTAG = -${GOOS}-${GOARCH}
|
binary: CUSTOMTAG = -${GOOS}-${GOARCH}
|
||||||
@ -145,14 +133,56 @@ COMPONENTLIST := uplink satellite storagenode
|
|||||||
OSARCHLIST := linux_amd64 windows_amd64 darwin_amd64
|
OSARCHLIST := linux_amd64 windows_amd64 darwin_amd64
|
||||||
BINARIES := $(foreach C,$(COMPONENTLIST),$(foreach O,$(OSARCHLIST),$C_$O))
|
BINARIES := $(foreach C,$(COMPONENTLIST),$(foreach O,$(OSARCHLIST),$C_$O))
|
||||||
.PHONY: binaries
|
.PHONY: binaries
|
||||||
binaries: ${BINARIES}
|
binaries: ${BINARIES} ## Build uplink, satellite, and storagenode binaries (jenkins)
|
||||||
|
|
||||||
|
##@ Deploy
|
||||||
|
|
||||||
|
.PHONY: deploy
|
||||||
|
deploy: ## Update Kubernetes deployments in staging (jenkins)
|
||||||
|
for deployment in $$(kubectl --context nonprod -n v3 get deployment -l app=storagenode --output=jsonpath='{.items..metadata.name}'); do \
|
||||||
|
kubectl --context nonprod --namespace v3 patch deployment $$deployment -p"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"storagenode\",\"image\":\"storjlabs/storagenode:${TAG}\"}]}}}}" ; \
|
||||||
|
done
|
||||||
|
kubectl --context nonprod --namespace v3 patch deployment satellite -p"{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"satellite\",\"image\":\"storjlabs/satellite:${TAG}\"}]}}}}"
|
||||||
|
|
||||||
|
.PHONY: push-images
|
||||||
|
push-images: ## Push Docker images to Docker Hub (jenkins)
|
||||||
|
docker tag storjlabs/satellite:${TAG} storjlabs/satellite:latest
|
||||||
|
docker push storjlabs/satellite:${TAG}
|
||||||
|
docker push storjlabs/satellite:latest
|
||||||
|
docker tag storjlabs/storagenode:${TAG} storjlabs/storagenode:latest
|
||||||
|
docker push storjlabs/storagenode:${TAG}
|
||||||
|
docker push storjlabs/storagenode:latest
|
||||||
|
docker tag storjlabs/uplink:${TAG} storjlabs/uplink:latest
|
||||||
|
docker push storjlabs/uplink:${TAG}
|
||||||
|
docker push storjlabs/uplink:latest
|
||||||
|
|
||||||
.PHONY: binaries-upload
|
.PHONY: binaries-upload
|
||||||
binaries-upload:
|
binaries-upload: ## Upload binaries to Google Storage (jenkins)
|
||||||
cd release; gsutil -m cp -r . gs://storj-v3-alpha-builds
|
cd release; gsutil -m cp -r . gs://storj-v3-alpha-builds
|
||||||
|
|
||||||
|
##@ Clean
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: test-docker-clean binaries-clean clean-images ## Clean docker test environment, local release binaries, and local Docker images
|
||||||
|
|
||||||
.PHONY: binaries-clean
|
.PHONY: binaries-clean
|
||||||
binaries-clean:
|
binaries-clean: ## Remove all local release binaries (jenkins)
|
||||||
rm -rf release
|
rm -rf release
|
||||||
|
|
||||||
clean: test-docker-clean binaries-clean clean-images
|
.PHONY: clean-images
|
||||||
|
ifeq (${BRANCH},master)
|
||||||
|
clean-images: ## Remove Docker images from local engine
|
||||||
|
-docker rmi storjlabs/satellite:${TAG} storjlabs/satellite:latest
|
||||||
|
-docker rmi storjlabs/storagenode:${TAG} storjlabs/storagenode:latest
|
||||||
|
-docker rmi storjlabs/uplink:${TAG} storjlabs/uplink:latest
|
||||||
|
else
|
||||||
|
clean-images:
|
||||||
|
-docker rmi storjlabs/satellite:${TAG}
|
||||||
|
-docker rmi storjlabs/storagenode:${TAG}
|
||||||
|
-docker rmi storjlabs/uplink:${TAG}
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: test-docker-clean
|
||||||
|
test-docker-clean: ## Clean up Docker environment used in test-docker target
|
||||||
|
-docker-compose down --rmi all
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user