概要
できるだけ余計なものを入れずに、Artifact上でスキーマ定義が見えるようにしたい。
やり方
まずschema/swagger.yml
にスキーマ定義がされてるとします。
そしたらschema/index.html
を作成します。
schema/index.html
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3.31.1/swagger-ui.css">
<script src="https://unpkg.com/swagger-ui-dist@3.31.1/swagger-ui-bundle.js"></script>
<script>
function render() {
var ui = SwaggerUIBundle({
url: `swagger.yml`,
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIBundle.SwaggerUIStandalonePreset
]
});
}
</script>
</head>
<body onload="render()">
<div id="swagger-ui"></div>
</body>
</html>
CircleCIでschema/index.html
とschema/swagger.yml
をArtifactに入れれば完了です。
(ディレクトリのなかにそれしかなければディレクトリごとあげちゃえばOK)
circleci/config.yml
...
store_schema:
steps:
- checkout
- store_artifacts:
path: schema
...
これで余計な依存を作らずにHTMLファイル1つ足すだけで動作させることができます。