name: Docs on: push: tags: [ 'v*.*.*' ] branches: ['main'] pull_request: workflow_dispatch: permissions: contents: write jobs: changes: name: Detect Changes runs-on: ubuntu-latest # Required permissions permissions: pull-requests: read # Set job outputs to values from filter step outputs: docs: ${{ steps.filter.outputs.docs }} steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v2 id: filter with: filters: | docs: - 'docs/**' test: needs: changes name: Test Build if: needs.changes.outputs.docs == 'true' && github.repository == 'benphelps/homepage' && github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: main - uses: actions/setup-python@v4 with: python-version: 3.x - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - uses: actions/cache@v3 with: key: mkdocs-material-${{ env.cache_id }} path: .cache restore-keys: | mkdocs-material- - run: sudo apt-get install pngquant - run: pip install mike - run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git - name: Test Docs Build run: MKINSIDERS=true mkdocs build deploy: needs: changes name: Build & Deploy if: needs.changes.outputs.docs == 'true' && github.repository == 'benphelps/homepage' && github.event_name != 'pull_request' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: main - uses: actions/setup-python@v4 with: python-version: 3.x - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - uses: actions/cache@v3 with: key: mkdocs-material-${{ env.cache_id }} path: .cache restore-keys: | mkdocs-material- - run: sudo apt-get install pngquant - run: pip install mike - run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git - name: Set Git config run: | git config --global user.name "GitHub Action" git config --global user.email "action@github.com" - name: Sync gh-pages run: | git fetch origin gh-pages git checkout gh-pages git pull origin gh-pages git checkout main - name: Docs Deploy for Main if: github.ref == 'refs/heads/main' run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}} - name: Docs Deploy for Tags if: github.ref != 'refs/heads/main' run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}} latest env: GH_TOKEN: ${{ secrets.GH_TOKEN }}