12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- PKG_BASE := github.com/elves/elvish
- PKGS := $(shell go list ./... | sed 's|^$(PKG_BASE)|.|' | grep -v '^./\(vendor\|website\)')
- PKG_COVERS := $(shell go list ./... | sed 's|^$(PKG_BASE)|.|' | grep -v '^\./\(vendor\|website\)' | grep -v '^\.$$' | sed 's/^\./_cover/' | sed 's/$$/.cover/')
- COVER_MODE := set
- VERSION := $(shell git describe --tags --always --dirty=-dirty)
- GOVERALLS := github.com/mattn/goveralls
- default: test get
- get:
- go get -ldflags "-X github.com/elves/elvish/buildinfo.Version=$(VERSION) \
- -X github.com/elves/elvish/buildinfo.GoRoot=$(shell go env GOROOT) \
- -X github.com/elves/elvish/buildinfo.GoPath=$(shell go env GOPATH)" .
- buildall:
- ./_tools/buildall.sh
- generate:
- go generate ./...
- test:
- go test $(PKGS)
- testmain:
- go test .
- _cover/%.cover: %
- mkdir -p $(dir $@)
- go test -coverprofile=$@ -covermode=$(COVER_MODE) ./$<
- _cover/all: $(PKG_COVERS)
- echo mode: $(COVER_MODE) > $@
- for f in $(PKG_COVERS); do test -f $$f && sed 1d $$f >> $@ || true; done
- upload-codecov-travis: _cover/all
- curl -s https://codecov.io/bash -o codecov.bash \
- && bash codecov.bash -f $<
- upload-coveralls-travis: _cover/all
- go get -d $(GOVERALLS) \
- && go build -o goveralls $(GOVERALLS) \
- && ./goveralls -coverprofile $< -service=travis-ci
- # Disable coverage reports for pull requests. The general testability of the
- # code is pretty bad and it is premature to require contributors to maintain
- # code coverage.
- upload-codecov-appveyor: _cover/all
- codecov -f $<
- upload-coveralls-appveyor: _cover/all
- goveralls -coverprofile $< -service=appveyor-ci
- binaries-travis:
- ./_tools/binaries-travis.sh
- coverage-travis: upload-codecov-travis upload-coveralls-travis
- coverage-appveyor: upload-codecov-appveyor upload-coveralls-appveyor
- .PHONY: default get buildall generate test testmain upload-codecov-travis upload-coveralls-travis upload-codecov-appveyor upload-coveralls-appveyor coverage-travis coverage-appveyor binaries-travis
|