name: Build and Deploy Docs on: [push, pull_request] jobs: build: name: Build docs runs-on: ubuntu-latest concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: - name: Checkout repository uses: actions/checkout@v4.1.2 with: fetch-depth: 0 sparse-checkout: | docs images includes overrides - name: Setup python uses: actions/setup-python@v5.0.0 with: python-version: 3.x - name: Get pip cache directory id: pip-cache run: | echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@v4.0.1 with: path: ${{ steps.pip-cache.outputs.dir }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: pip install -r docs/requirements.txt - name: Build documentation run: mkdocs build deploy: if: github.event_name == 'push' && contains(fromJson('["refs/heads/master", "refs/heads/main"]'), github.ref) needs: build name: Deploy docs runs-on: ubuntu-latest permissions: contents: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true steps: - name: Checkout repository uses: actions/checkout@v4.1.2 with: fetch-depth: 0 sparse-checkout: | docs images includes overrides - name: Setup python uses: actions/setup-python@v5.0.0 with: python-version: 3.x - name: Get pip cache directory id: pip-cache run: | echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@v4.0.1 with: path: ${{ steps.pip-cache.outputs.dir }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Install dependencies run: pip install -r docs/requirements.txt - name: Deploy to GitHub Pages run: mkdocs gh-deploy --force