From 1678ce0af88f0b5cb1e52b6d542515af0c2060b0 Mon Sep 17 00:00:00 2001 From: Doug Goldstein Date: Tue, 20 Feb 2024 17:13:37 -0600 Subject: [PATCH] feat: build GitHub Pages using mkdocs Build the existing markdown pages in the docs folder using mkdocs and deploy them to GitHub Pages. --- .github/workflows/mkdocs.yaml | 59 ++++++++++++++++++++++++++++++++++ .gitignore | 3 ++ doc-requirements.txt | 2 ++ docs/index.md | 0 mkdocs.yml | 60 +++++++++++++++++++++++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 .github/workflows/mkdocs.yaml create mode 100644 doc-requirements.txt create mode 100644 docs/index.md create mode 100644 mkdocs.yml diff --git a/.github/workflows/mkdocs.yaml b/.github/workflows/mkdocs.yaml new file mode 100644 index 00000000..1e423941 --- /dev/null +++ b/.github/workflows/mkdocs.yaml @@ -0,0 +1,59 @@ +name: pages build and deployment + +on: + push: + branches: + - main + paths: + - "docs/**" + - ".github/workflows/mkdocs.yml" + pull_request: + paths: + - "docs/**" + - ".github/workflows/mkdocs.yml" + workflow_dispatch: + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - run: pip install -r doc-requirements.txt + - run: mkdocs build + - uses: actions/upload-pages-artifact@v2 + with: + path: site/ + + deploy: + # depend on the docs being built + needs: build + + # ensure we only run on commits to the main branch + if: github.ref == 'refs/heads/main' + + runs-on: ubuntu-latest + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: "github-pages" + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index 07aa5c34..eeb46464 100644 --- a/.gitignore +++ b/.gitignore @@ -121,3 +121,6 @@ kubernetes_sigs-kubespray*tar.gz ansible_collections kustomize/**/all.yaml + +# mkdocs +site/ diff --git a/doc-requirements.txt b/doc-requirements.txt new file mode 100644 index 00000000..9a8a4ca4 --- /dev/null +++ b/doc-requirements.txt @@ -0,0 +1,2 @@ +mkdocs +mkdocs-material diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..e69de29b diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..38e0d707 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,60 @@ +--- +site_name: Genestack +site_description: >- + Genestack — where Kubernetes and OpenStack tango in the cloud. Imagine a waltz between systems that deploy what you need. + +theme: + name: material + + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + + features: + - announce.dismiss + - content.action.edit + - content.code.annotate + - content.code.copy + # - content.tabs.link + - content.tooltips + # - header.autohide + # - navigation.expand + - navigation.footer + - navigation.indexes + - navigation.instant + # - navigation.prune + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - navigation.tracking + - search.highlight + - search.share + - search.suggest + - toc.follow + +plugins: + - search + +markdown_extensions: + - admonition + - attr_list + - def_list + +repo_name: rackerlabs/genestack +repo_url: https://github.com/rackerlabs/genestack +dev_addr: "127.0.0.1:8001" +edit_uri: "edit/main/docs" + +nav: + - Home: index.md + - Quick-Start: quickstart.md + - Components: components.md