- 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>
... | ... |
@@ -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 |
|
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 |