From 40e350b02b168167da2f7424437cf8a71d4a038a Mon Sep 17 00:00:00 2001
From: David Trattnig <david.trattnig@o94.at>
Date: Fri, 19 Jun 2020 12:55:36 +0200
Subject: [PATCH] Build Swagger UI docs.

---
 .gitlab-ci.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 .gitlab-ci.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..2ca7c1e
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,46 @@
+image: alpine:latest
+
+stages:
+  - bundle
+  - deploy
+
+variables:
+  API_ROOT_FILE: ./src/swagger/swagger.yaml
+  BUNDLED_JSON_FILE: ./public/api.json
+
+cache:
+  paths:
+    - ./node_modules
+
+bundle_and_test:
+  stage: bundle
+  before_script:
+    - apk add --update npm
+    - npm install -g @apidevtools/swagger-cli
+
+  script:
+    - mkdir public
+    - swagger-cli bundle -t json $API_ROOT_FILE > $BUNDLED_JSON_FILE
+    - swagger-cli validate $BUNDLED_JSON_FILE
+
+  artifacts:
+    paths:
+      - public
+    expire_in: 2 days
+  only:
+    - develop
+
+pages:
+  stage: deploy
+  before_script:
+    - apk add --update npm
+    - npm install swagger-ui-dist@3.22.1
+  script:
+    - cp -rp node_modules/swagger-ui-dist/* ./public
+    - 'sed -i "s@.*url.*@url: \"api.json\",@" ./public/index.html'
+  artifacts:
+    paths:
+      - public
+    expire_in: 2 days
+  only:
+    - develop
-- 
GitLab