name: Build and Deploy Docs on: [push, pull_request] jobs: build: name: Build docs runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4.1.1 - name: Set up Python uses: actions/setup-python@v5.0.0 with: python-version: 3.x - name: Cache dependencies uses: actions/cache@v4.0.0 with: path: .cache key: ${{ runner.os }}-build-${{ hashFiles('docs/requirements.txt') }} - 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 steps: - name: Checkout repository uses: actions/checkout@v4.1.1 with: fetch-depth: '0' - name: Set up Python uses: actions/setup-python@v5.0.0 with: python-version: 3.x - name: Cache dependencies uses: actions/cache@v4.0.0 with: path: .cache key: ${{ runner.os }}-build-${{ hashFiles('docs/requirements.txt') }} - name: Install dependencies run: pip install -r docs/requirements.txt - name: Deploy to GitHub Pages run: mkdocs gh-deploy --force