name: MkDocs Preview Deployment on: workflow_dispatch: # Allows manual triggering push: branches: - 'feature/**' - 'fix/**' - 'blog/**' - 'build/**' - 'test/**' - 'preview/**' jobs: deploy-preview: runs-on: ubuntu-22.04 permissions: contents: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.13' - name: Install MkDocs and plugins run: | pip install --upgrade pip pip install \ cairosvg \ libsass \ mkdocs-exclude \ mkdocs-git-revision-date-localized-plugin \ mkdocs-glightbox \ mkdocs-include-markdown-plugin \ mkdocs-literate-nav \ mkdocs-macros-plugin \ mkdocs-material==9.6.14 \ "mkdocs-material[imaging]" \ mkdocs-minify-plugin \ mkdocs-redirects \ mkdocs-rss-plugin \ mkdocs-snippets \ mkdocs-video \ watchdog - name: Configure site_url for fork preview run: | # Extract GitHub username and repo name GITHUB_USER=$(echo $GITHUB_REPOSITORY | cut -d '/' -f 1) REPO_NAME=$(echo $GITHUB_REPOSITORY | cut -d '/' -f 2) # Update site_url in mkdocs.yml for fork preview if grep -q "^site_url:" mkdocs.yml; then sed -i "s|^site_url:.*|site_url: https://${GITHUB_USER}.github.io/${REPO_NAME}/|" mkdocs.yml else echo "site_url: https://${GITHUB_USER}.github.io/${REPO_NAME}/" >> mkdocs.yml fi echo "Updated mkdocs.yml for preview deployment:" cat mkdocs.yml - name: Build css run: | mkdir -p docs/assets/css pysassc overrides/assets/css/custom.scss docs/assets/css/custom.css - name: Build static site run: mkdocs build - name: Deploy to GitHub Pages run: mkdocs gh-deploy --force