2017-06-12 06:16:34 +08:00
PKG_BASE := github.com/elves/elvish
2018-06-06 05:05:59 +08:00
PKGS := $( shell go list ./... | sed 's|^$(PKG_BASE)|.|' | grep -v '^./\(vendor\|website\)' )
2018-08-28 04:16:39 +08:00
PKG_COVERS := $( shell go list ./... | sed 's|^$(PKG_BASE)|.|' | grep -v '^\./\(vendor\|website\)' | grep -v '^\.$$' | sed 's/^\./_cover/' | sed 's/$$/.cover/' )
2017-06-01 06:26:03 +08:00
COVER_MODE := set
2018-06-15 07:41:25 +08:00
VERSION := $( shell git describe --tags --always --dirty= -dirty)
2013-09-18 16:58:51 +08:00
2017-12-26 10:34:27 +08:00
GOVERALLS := github.com/mattn/goveralls
2016-02-22 02:34:40 +08:00
2017-12-09 23:45:29 +08:00
default : test get
2014-01-31 21:08:56 +08:00
2015-02-27 09:29:40 +08:00
get :
2018-06-15 07:34:00 +08:00
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) " .
2013-09-18 16:58:51 +08:00
2018-06-15 06:29:10 +08:00
buildall :
2018-08-28 04:16:39 +08:00
./_tools/buildall.sh
2018-06-15 06:29:10 +08:00
2016-10-13 16:18:22 +08:00
generate :
go generate ./...
2016-10-26 17:36:26 +08:00
test :
2016-09-15 22:18:03 +08:00
go test $( PKGS)
2014-01-25 21:15:54 +08:00
2017-12-08 08:39:55 +08:00
testmain :
go test .
2018-08-28 04:16:39 +08:00
_cover/%.cover : %
2017-02-12 11:15:37 +08:00
mkdir -p $( dir $@ )
2016-10-13 16:18:22 +08:00
go test -coverprofile= $@ -covermode= $( COVER_MODE) ./$<
2014-01-25 21:15:54 +08:00
2018-08-28 04:16:39 +08:00
_cover/all : $( PKG_COVERS )
2016-10-13 16:18:22 +08:00
echo mode: $( COVER_MODE) > $@
2017-05-29 19:59:48 +08:00
for f in $( PKG_COVERS) ; do test -f $$ f && sed 1d $$ f >> $@ || true; done
2014-01-25 21:15:54 +08:00
2018-08-28 04:16:39 +08:00
upload-codecov-travis : _cover /all
2018-09-13 08:17:05 +08:00
curl -s https://codecov.io/bash -o codecov.bash \
2018-09-14 20:47:54 +08:00
&& bash codecov.bash -f $<
2017-12-16 12:30:33 +08:00
2018-08-28 04:16:39 +08:00
upload-coveralls-travis : _cover /all
2018-09-13 08:17:05 +08:00
go get -d $( GOVERALLS) \
2017-12-26 10:34:27 +08:00
&& go build -o goveralls $( GOVERALLS) \
2018-09-14 20:47:54 +08:00
&& ./goveralls -coverprofile $< -service= travis-ci
2017-12-26 10:34:27 +08:00
2018-09-13 08:17:05 +08:00
# 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.
2018-08-28 04:16:39 +08:00
upload-codecov-appveyor : _cover /all
2018-09-14 20:44:42 +08:00
codecov -f $<
2017-12-26 10:34:27 +08:00
2018-08-28 04:16:39 +08:00
upload-coveralls-appveyor : _cover /all
2018-09-14 20:44:42 +08:00
goveralls -coverprofile $< -service= appveyor-ci
2017-12-22 03:58:25 +08:00
2018-09-14 20:37:29 +08:00
binaries-travis :
./_tools/binaries-travis.sh
2018-09-14 07:09:45 +08:00
2018-09-13 08:30:02 +08:00
coverage-travis : upload -codecov -travis upload -coveralls -travis
2018-09-14 20:36:39 +08:00
coverage-appveyor : upload -codecov -appveyor upload -coveralls -appveyor
2016-02-10 06:10:26 +08:00
2018-09-14 20:37:29 +08:00
.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