Skip to content

Commit 46a5ea3

Browse files
committed
Basic Makefile, TravisCI support, coveralls support and linters
1 parent ce4a6e0 commit 46a5ea3

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed

.travis.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
language: go
2+
3+
go:
4+
- 1.7.1
5+
6+
sudo: false
7+
8+
env:
9+
global:
10+
# Coveralls.io
11+
- secure: OGYOsFNXNarEZ5yA4/M6ZdVguD0jL8vXgXrbLzjcpkKcq8ObHSCtNINoUlnNf6l6Z92kPnuV+LSm7jKTojBlov4IwgiY1ACbvg921SdjxYkg1AiwHTRTLR1g/esX8RdaBpJ0TOcXOFFsYMRVvl5sxxtb0tXSuUrT+Ch4SUCY7X8=
12+
13+
install:
14+
- make install-dependencies
15+
- make install-tools
16+
- make install
17+
18+
script:
19+
- make lint
20+
- make test-with-coverage
21+
- gover
22+
- if [ "$TRAVIS_SECURE_ENV_VARS" = "true" ]; then goveralls -coverprofile=gover.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN; fi

Makefile

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
.PHONY: all clean clean-coverage install install-dependencies install-tools lint test test-verbose test-with-coverage
2+
3+
export ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
4+
export PKG := github.com/sergi/go-diff
5+
export ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
6+
7+
$(eval $(ARGS):;@:) # turn arguments into do-nothing targets
8+
export ARGS
9+
10+
ifdef ARGS
11+
PKG_TEST := $(ARGS)
12+
else
13+
PKG_TEST := $(PKG)/...
14+
endif
15+
16+
all: install-tools install-dependencies install lint test
17+
18+
clean:
19+
go clean -i $(PKG)/...
20+
go clean -i -race $(PKG)/...
21+
clean-coverage:
22+
find $(ROOT_DIR) | grep .coverprofile | xargs rm
23+
install:
24+
go install -v $(PKG)/...
25+
install-dependencies:
26+
go get -t -v $(PKG)/...
27+
go build -v $(PKG)/...
28+
install-tools:
29+
# Install linting tools
30+
go get -u -v github.com/golang/lint/...
31+
go get -u -v github.com/kisielk/errcheck/...
32+
33+
# Install code coverage tools
34+
go get -u -v github.com/onsi/ginkgo/ginkgo/...
35+
go get -u -v github.com/modocache/gover/...
36+
go get -u -v github.com/mattn/goveralls/...
37+
lint:
38+
$(ROOT_DIR)/scripts/lint.sh
39+
test:
40+
go test -race -test.timeout 120s $(PKG_TEST)
41+
test-verbose:
42+
go test -race -test.timeout 120s -v $(PKG_TEST)
43+
test-with-coverage:
44+
ginkgo -r -cover -race -skipPackage="testdata"

scripts/lint.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
3+
if [ -z ${PKG+x} ]; then echo "PKG is not set"; exit 1; fi
4+
if [ -z ${ROOT_DIR+x} ]; then echo "ROOT_DIR is not set"; exit 1; fi
5+
6+
echo "gofmt:"
7+
OUT=$(gofmt -l $ROOT_DIR)
8+
if [ $(echo -n "$OUT" | wc -l) -ne 0 ]; then echo "$OUT"; PROBLEM=1; fi
9+
10+
echo "errcheck:"
11+
OUT=$(errcheck $PKG/...)
12+
if [ $(echo -n "$OUT" | wc -l) -ne 0 ]; then echo "$OUT"; PROBLEM=1; fi
13+
14+
echo "go vet:"
15+
OUT=$(go tool vet -all=true -v=true $ROOT_DIR 2>&1 | grep --invert-match -P "(Checking file|\%p of wrong type|can't check non-constant format)")
16+
if [ $(echo -n "$OUT" | wc -l) -ne 0 ]; then echo "$OUT"; PROBLEM=1; fi
17+
18+
echo "golint:"
19+
OUT=$(golint $PKG/...)
20+
if [ $(echo -n "$OUT" | wc -l) -ne 0 ]; then echo "$OUT"; PROBLEM=1; fi
21+
22+
if [ -n "$PROBLEM" ]; then exit 1; fi

0 commit comments

Comments
 (0)