-
Notifications
You must be signed in to change notification settings - Fork 7
/
travis.sh
31 lines (21 loc) · 860 Bytes
/
travis.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# for Travis CI
# Don't run this script at local
# see: https://gist.github.com/ToQoz/7fd1fe3d3c224c194eea
COV_PARTIAL_FILE=profile.cov.out
COV_FILE=profile-all.cov.out
COV_MODE=count
HEADER="mode: $COV_MODE"
if which gxargs > /dev/null; then
XARGS=gxargs
else
XARGS=xargs
fi
XARGS_ARG=DIR
CMD_COV="go test $XARGS_ARG -covermode=$COV_MODE -coverprofile=$XARGS_ARG/$COV_PARTIAL_FILE"
CMD_CHECKDIR="ls $XARGS_ARG/$COV_PARTIAL_FILE > /dev/null 2>&1"
CMD_CONCATCOV="cat $XARGS_ARG/$COV_PARTIAL_FILE | grep -v '$HEADER' >> $COV_FILE"
GOVERALLS=$(echo $GOPATH | tr ':' '\n' | head -n 1)/bin/goveralls
echo $HEADER > $COV_FILE
find ./* -maxdepth 10 -name '*.go' -print0 | $XARGS -r0 -L1 dirname | uniq | $XARGS -I$XARGS_ARG sh -c "$CMD_COV && ($CMD_CHECKDIR && $CMD_CONCATCOV) || exit 0"
$GOVERALLS -coverprofile=$COV_FILE -service=travis-ci