elvish/Makefile
Qi Xiao ea9fe4876b Simplify coverage deployment scripts for Travis.
The condition is guarded in .travis.yml now, so we don't need the
explicit output of whether coverage is being sent.
2018-09-14 13:48:34 +01:00

62 lines
1.9 KiB
Makefile

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