forked from grpc-ecosystem/grpc-gateway
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
82 lines (77 loc) · 3.11 KB
/
.travis.yml
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
language: go
sudo: false
go:
- 1.9.x
- 1.10.x
- master
go_import_path: github.com/grpc-ecosystem/grpc-gateway
cache:
directories:
- $HOME/local
- ${TRAVIS_BUILD_DIR}/examples/browser/node_modules
- $HOME/.cache/_grpc_gateway_bazel
before_install:
- if [ "${USE_BAZEL}" = true ]; then ./.travis/install-bazel.sh $BAZEL_VERSION; fi
- test "${USE_BAZEL}" = true || ./.travis/install-protoc.sh $PROTOC_VERSION
- test "${USE_BAZEL}" = true || ./.travis/install-swagger-codegen.sh $SWAGGER_CODEGEN_VERSION
- test "${USE_BAZEL}" = true || (nvm install $NODE_VERSION && nvm use $NODE_VERSION && node --version)
- test "${USE_BAZEL}" = true || go get github.com/golang/lint/golint
- test "${USE_BAZEL}" = true || go get github.com/dghubble/sling
- test "${USE_BAZEL}" = true || go get github.com/go-resty/resty
- test "${USE_BAZEL}" = true || curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
install:
# Make sure externally referenced packages are go-gettable.
- test "${USE_BAZEL}" = true ||
go get github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
- test "${USE_BAZEL}" = true ||
go get github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
- test "${USE_BAZEL}" = true ||
go get github.com/grpc-ecosystem/grpc-gateway/runtime
- test "${USE_BAZEL}" = true ||
go get github.com/grpc-ecosystem/grpc-gateway/examples/cmd/example-grpc-server
- test "${USE_BAZEL}" = true ||
go get github.com/grpc-ecosystem/grpc-gateway/examples/cmd/example-gateway-server
# Just build if USE_BAZEL
- if [ "${USE_BAZEL}" = true ]; then ./.travis/bazel-build.sh; fi
before_script:
- test "${USE_BAZEL}" = true ||
(cd examples/browser && npm install)
script:
# Make sure examples of generated files are up-to-date
- test "${USE_BAZEL}" = true ||
(make realclean && make examples SWAGGER_CODEGEN="java -jar $HOME/local/swagger-codegen-cli.jar")
- if [ -z "${USE_BAZEL}" ] &&
(go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") &&
[ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then
test -z "$(git status --porcelain)" || (git status; git diff; exit 1);
fi
# Unit tests, integration tests and code health checks
- test "${USE_BAZEL}" = true ||
env GLOG_logtostderr=1 go test -race -v github.com/grpc-ecosystem/grpc-gateway/...
- test "${USE_BAZEL}" = true ||
make lint
- test "${USE_BAZEL}" = true ||
sh -c 'cd examples/browser && node ./node_modules/gulp/bin/gulp'
- if [ "${USE_BAZEL}" = true ]; then ./.travis/bazel-test.sh; fi
# test coverage
- if (go version | grep -q "${GO_VERSION_TO_DIFF_TEST}") &&
[ -z "${GATEWAY_PLUGIN_FLAGS}" ]; then
env GLOG_logtostderr=1 ./bin/coverage;
fi
after_success:
- bash <(curl -s https://codecov.io/bash)
env:
global:
- "PATH=$PATH:$HOME/local/bin"
- GO_VERSION_TO_DIFF_TEST="go version go1\.10\.[0-9]\+ linux/amd64"
- BAZEL_VERSION=0.12.0
- NODE_VERSION=v6.1
- PROTOC_VERSION=3.1.0
- SWAGGER_CODEGEN_VERSION=2.2.2
matrix:
- GATEWAY_PLUGIN_FLAGS=
- GATEWAY_PLUGIN_FLAGS=request_context=false
matrix:
include:
- go: master
env: USE_BAZEL=true