build: ditch verifiers on make (#4679)

This commit ditches running verifiers automatically when just building
the server. It retains the verifiers when running tests.

There is very little point to running the verifiers each time a
developer builds the library but has no intent of running the tests.
They're expensive in time; this commit halves the build time on my
system, from 57 seconds to 29 seconds. This is because verifiers updates
the libraries from GitHub each time, which is slightly wasteful.
Additionally, computing cyclomatic complexity is expensive
computationally and isn't necessary to build the library.

Additionally, this allows the library to be built offline. It no longer
requires internet to run make.
master
Brendan Ashworth 7 years ago committed by Harshavardhana
parent bc73a1a1cb
commit c59b995f7b
  1. 23
      Makefile

@ -4,7 +4,7 @@ LDFLAGS := $(shell go run buildscripts/gen-ldflags.go)
BUILD_LDFLAGS := '$(LDFLAGS)' BUILD_LDFLAGS := '$(LDFLAGS)'
all: install all: build
checks: checks:
@echo "Check deps" @echo "Check deps"
@ -19,7 +19,7 @@ getdeps: checks
@echo "Installing misspell" && go get -u github.com/client9/misspell/cmd/misspell @echo "Installing misspell" && go get -u github.com/client9/misspell/cmd/misspell
@echo "Installing ineffassign" && go get -u github.com/gordonklaus/ineffassign @echo "Installing ineffassign" && go get -u github.com/gordonklaus/ineffassign
verifiers: vet fmt lint cyclo spelling verifiers: getdeps vet fmt lint cyclo spelling
vet: vet:
@echo "Running $@" @echo "Running $@"
@ -45,8 +45,6 @@ cyclo:
@${GOPATH}/bin/gocyclo -over 100 cmd @${GOPATH}/bin/gocyclo -over 100 cmd
@${GOPATH}/bin/gocyclo -over 100 pkg @${GOPATH}/bin/gocyclo -over 100 pkg
build: getdeps verifiers $(UI_ASSETS)
deadcode: deadcode:
@${GOPATH}/bin/deadcode @${GOPATH}/bin/deadcode
@ -55,7 +53,9 @@ spelling:
@${GOPATH}/bin/misspell -error `find pkg/` @${GOPATH}/bin/misspell -error `find pkg/`
@${GOPATH}/bin/misspell -error `find docs/` @${GOPATH}/bin/misspell -error `find docs/`
test: build # Builds minio, runs the verifiers then runs the tests.
check: test
test: verifiers build
@echo "Running all minio testing" @echo "Running all minio testing"
@go test $(GOFLAGS) . @go test $(GOFLAGS) .
@go test $(GOFLAGS) github.com/minio/minio/cmd... @go test $(GOFLAGS) github.com/minio/minio/cmd...
@ -65,9 +65,10 @@ coverage: build
@echo "Running all coverage for minio" @echo "Running all coverage for minio"
@./buildscripts/go-coverage.sh @./buildscripts/go-coverage.sh
gomake-all: build # Builds minio locally.
@echo "Installing minio at $(GOPATH)/bin/minio" build:
@CGO_ENABLED=0 go build --ldflags $(BUILD_LDFLAGS) -o $(GOPATH)/bin/minio @echo "Building minio to $(PWD)/minio ..."
@CGO_ENABLED=0 go build --ldflags $(BUILD_LDFLAGS) -o $(PWD)/minio
pkg-add: pkg-add:
@echo "Adding new package $(PKG)" @echo "Adding new package $(PKG)"
@ -84,7 +85,11 @@ pkg-remove:
pkg-list: pkg-list:
@$(GOPATH)/bin/govendor list @$(GOPATH)/bin/govendor list
install: gomake-all # Builds minio and installs it to $GOPATH/bin.
install: build
@echo "Installing minio at $(GOPATH)/bin/minio ..."
@cp $(PWD)/minio $(GOPATH)/bin/minio
@echo "Check 'minio -h' for help."
release: verifiers release: verifiers
@MINIO_RELEASE=RELEASE ./buildscripts/build.sh @MINIO_RELEASE=RELEASE ./buildscripts/build.sh

Loading…
Cancel
Save