Browse code

Add swagger.yaml validation

- yamllint to ensure it is a valid YAML file
- go-swagger validate to ensure it is a valid swagger file

Signed-off-by: Ben Firshman <ben@firshman.co.uk>

Ben Firshman authored on 2016/11/04 02:15:27
Showing 4 changed files
... ...
@@ -194,6 +194,15 @@ RUN git clone https://github.com/docker/docker-py.git /docker-py \
194 194
 	&& git checkout -q $DOCKER_PY_COMMIT \
195 195
 	&& pip install -r test-requirements.txt
196 196
 
197
+# Install yamllint for validating swagger.yaml
198
+RUN pip install yamllint==1.5.0
199
+
200
+# Install go-swagger for validating swagger.yaml
201
+ENV GO_SWAGGER_COMMIT c28258affb0b6251755d92489ef685af8d4ff3eb
202
+RUN git clone https://github.com/go-swagger/go-swagger.git /go/src/github.com/go-swagger/go-swagger \
203
+	&& (cd /go/src/github.com/go-swagger/go-swagger && git checkout -q $GO_SWAGGER_COMMIT) \
204
+	&& go install -v github.com/go-swagger/go-swagger/cmd/swagger
205
+
197 206
 # Set user.email so crosbymichael's in-container merge commits go smoothly
198 207
 RUN git config --global user.email 'docker-dummy@example.com'
199 208
 
200 209
new file mode 100644
... ...
@@ -0,0 +1,4 @@
0
+extends: default
1
+rules:
2
+  document-start: disable
3
+  line-length: disable
... ...
@@ -9,6 +9,7 @@ export SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9 9
 . $SCRIPTDIR/gofmt
10 10
 . $SCRIPTDIR/lint
11 11
 . $SCRIPTDIR/pkg-imports
12
+. $SCRIPTDIR/swagger
12 13
 . $SCRIPTDIR/test-imports
13 14
 . $SCRIPTDIR/toml
14 15
 . $SCRIPTDIR/vet
15 16
new file mode 100755
... ...
@@ -0,0 +1,13 @@
0
+#!/bin/bash
1
+set -e
2
+export SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3
+source "${SCRIPTDIR}/.validate"
4
+
5
+IFS=$'\n'
6
+files=( $(validate_diff --diff-filter=ACMR --name-only -- 'api/swagger.yaml' || true) )
7
+unset IFS
8
+
9
+if [ ${#files[@]} -gt 0 ]; then
10
+  yamllint -c ${SCRIPTDIR}/.swagger-yamllint api/swagger.yaml
11
+  swagger validate api/swagger.yaml
12
+fi