From 6e1698e8200a2ffdc41f59b9e7bb16caa7ad60c4 Mon Sep 17 00:00:00 2001 From: Gara Dorta Date: Wed, 6 May 2026 11:57:16 +0100 Subject: [PATCH] feat: deploy pages with CI Co-authored-by: Copilot --- .github/workflows/deploy-pages.yml | 37 ++++++++++++++++++++++++++++++ src/docs/build-static-bundle.sh | 24 +++++++++++++++++++ index.html => src/docs/index.html | 2 +- 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/deploy-pages.yml create mode 100755 src/docs/build-static-bundle.sh rename index.html => src/docs/index.html (92%) diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..e4fd14a --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,37 @@ +name: Deploy API Docs to GitHub Pages + +on: + release: + types: + - published + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build-and-deploy: + runs-on: ubuntu-24.04 + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Pages + uses: actions/configure-pages@v6 + + - name: Build static documentation bundle + run: src/docs/build-static-bundle.sh site "${{ github.event.release.tag_name }}" + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: site + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/src/docs/build-static-bundle.sh b/src/docs/build-static-bundle.sh new file mode 100755 index 0000000..f1d279b --- /dev/null +++ b/src/docs/build-static-bundle.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +DOCS_DIR="$ROOT_DIR/src/docs" +INDEX_FILE="$DOCS_DIR/index.html" +OUT_DIR="${1:?output directory argument is required}" +DOCS_VERSION="${2:?docs version argument is required}" +NORMALIZED_DOCS_VERSION="${DOCS_VERSION#v}" + +echo "Normalized docs version: $NORMALIZED_DOCS_VERSION" + +rm -rf "$OUT_DIR" +mkdir -p "$OUT_DIR" + +cp "$DOCS_DIR/swagger.json" "$OUT_DIR/swagger.json" +cp "$INDEX_FILE" "$OUT_DIR/index.html" +touch "$OUT_DIR/.nojekyll" + +jq --arg version "$NORMALIZED_DOCS_VERSION" '.info.version = $version' "$OUT_DIR/swagger.json" > "$OUT_DIR/swagger.json.tmp" +mv "$OUT_DIR/swagger.json.tmp" "$OUT_DIR/swagger.json" + +echo "Static bundle created at: $OUT_DIR" diff --git a/index.html b/src/docs/index.html similarity index 92% rename from index.html rename to src/docs/index.html index f747d1c..6346d99 100644 --- a/index.html +++ b/src/docs/index.html @@ -11,7 +11,7 @@ window.onload = function () { // Begin Swagger UI call region const ui = SwaggerUIBundle({ - url: "src/docs/swagger.json", //Location of Open API spec in the repo + url: "swagger.json", dom_id: '#swagger-ui', deepLinking: true, presets: [