mirror of
https://github.com/linuxkit/linuxkit.git
synced 2026-02-22 09:16:40 +00:00
Improve makefile and circleci config
Use gometalinter for linting put build artifact in dist/ store artifacts in circleci Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This commit is contained in:
47
Makefile
47
Makefile
@@ -1,47 +1,38 @@
|
||||
VERSION="0.0" # dummy for now
|
||||
GIT_COMMIT=$(shell git rev-list -1 HEAD)
|
||||
|
||||
default: moby
|
||||
default: all
|
||||
|
||||
DEPS=$(wildcard cmd/moby/*.go src/moby/*.go src/initrd/*.go src/pad4/*.go) vendor.conf Makefile
|
||||
PREFIX?=/usr/local
|
||||
|
||||
GOLINT:=$(shell command -v golint 2> /dev/null)
|
||||
INEFFASSIGN:=$(shell command -v ineffassign 2> /dev/null)
|
||||
GOMETALINTER:=$(shell command -v gometalinter 2> /dev/null)
|
||||
|
||||
moby: $(DEPS)
|
||||
go build --ldflags "-X main.GitCommit=$(GIT_COMMIT) -X main.Version=$(VERSION)" -o $@ github.com/moby/tool/cmd/moby
|
||||
dist/moby dist/moby-$(GOOS): $(DEPS)
|
||||
go build \
|
||||
--ldflags "-X main.GitCommit=$(GIT_COMMIT) -X main.Version=$(VERSION)" \
|
||||
-o $@ ./cmd/moby
|
||||
|
||||
.PHONY:
|
||||
.PHONY: lint
|
||||
lint:
|
||||
ifndef GOLINT
|
||||
$(error "Please install golint! go get -u github.com/tool/lint")
|
||||
endif
|
||||
ifndef INEFFASSIGN
|
||||
$(error "Please install ineffassign! go get -u github.com/gordonklaus/ineffassign")
|
||||
endif
|
||||
# golint
|
||||
@test -z "$(shell find . -type f -name "*.go" -not -path "./vendor/*" -not -name "*.pb.*" -exec golint {} \; | tee /dev/stderr)"
|
||||
# gofmt
|
||||
@test -z "$$(gofmt -s -l .| grep -v .pb. | grep -v vendor/ | tee /dev/stderr)"
|
||||
# ineffassign
|
||||
@test -z $(find . -type f -name "*.go" -not -path "*/vendor/*" -not -name "*.pb.*" -exec ineffassign {} \; | tee /dev/stderr)
|
||||
ifeq ($(GOOS),)
|
||||
# govet
|
||||
@test -z "$$(go tool vet -printf=false . 2>&1 | grep -v vendor/ | tee /dev/stderr)"
|
||||
ifndef GOMETALINTER
|
||||
$(error "Please install gometalinter! go get -u github.com/alecthomas/gometalinter")
|
||||
endif
|
||||
gometalinter --config gometalinter.json ./...
|
||||
|
||||
test: lint moby
|
||||
# go test
|
||||
@go test github.com/moby/tool/src/moby
|
||||
test: dist/moby
|
||||
@go test $(shell go list ./... | grep -vE '/vendor/')
|
||||
# test build
|
||||
./moby build -format tar test/test.yml
|
||||
rm moby test.tar
|
||||
dist/moby build -format tar test/test.yml
|
||||
rm dist/moby test.tar
|
||||
|
||||
.PHONY: all
|
||||
all: lint test moby
|
||||
|
||||
.PHONY: install
|
||||
install: moby
|
||||
install: dist/moby
|
||||
cp -a $^ $(PREFIX)/bin/
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f moby
|
||||
rm -f dist
|
||||
|
||||
Reference in New Issue
Block a user