mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-12-25 05:44:54 +01:00
119 lines
3.9 KiB
YAML
119 lines
3.9 KiB
YAML
# Copyright (c) 2016-2024 Martin Donath <martin.donath@squidfunk.com>
|
||
|
||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
# of this software and associated documentation files (the "Software"), to
|
||
# deal in the Software without restriction, including without limitation the
|
||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||
# sell copies of the Software, and to permit persons to whom the Software is
|
||
# furnished to do so, subject to the following conditions:
|
||
|
||
# The above copyright notice and this permission notice shall be included in
|
||
# all copies or substantial portions of the Software.
|
||
|
||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||
# IN THE SOFTWARE.
|
||
|
||
name: documentation
|
||
on:
|
||
push:
|
||
branches:
|
||
- master
|
||
|
||
env:
|
||
PYTHON_VERSION: 3.x
|
||
|
||
permissions:
|
||
contents: write
|
||
id-token: write
|
||
pages: write
|
||
|
||
jobs:
|
||
documentation:
|
||
name: Build documentation
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0
|
||
sparse-checkout: |
|
||
docs
|
||
includes
|
||
material/overrides
|
||
src/templates/partials/languages
|
||
|
||
- name: Set up Python runtime
|
||
uses: actions/setup-python@v5
|
||
with:
|
||
python-version: ${{ env.PYTHON_VERSION }}
|
||
cache: pip
|
||
cache-dependency-path: |
|
||
pyproject.toml
|
||
requirements.txt
|
||
|
||
- name: Set up build cache
|
||
uses: actions/cache/restore@v4
|
||
with:
|
||
key: mkdocs-material-${{ hashfiles('.cache/**') }}
|
||
path: .cache
|
||
restore-keys: |
|
||
mkdocs-material-
|
||
|
||
- name: Install dependencies
|
||
run: sudo apt-get install pngquant
|
||
|
||
- name: Install Python dependencies
|
||
run: |
|
||
pip install mkdocs-material
|
||
pip install .[recommended,git,imaging]
|
||
|
||
- name: Install Insiders build
|
||
if: github.event.repository.fork == false
|
||
env:
|
||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||
run: |
|
||
# Warning: please don't use this method when installing Insiders from
|
||
# CI! We have to do it this way in order to allow for overrides on our
|
||
# own documentation, but you should stick to the method we recommend
|
||
# in the publishing guide – see https://bit.ly/3zjdJtw
|
||
git clone --depth 1 https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
|
||
pip install -e mkdocs-material-insiders
|
||
cp mkdocs-material-insiders/mkdocs.yml mkdocs.yml
|
||
# echo 'extra_javascript: [${{ vars.CHAT_CLIENT_URL }}]' >> mkdocs.yml
|
||
rm -rf material
|
||
cp -r mkdocs-material-insiders/material material
|
||
|
||
- name: Build documentation
|
||
env:
|
||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||
GOOGLE_ANALYTICS_KEY: ${{ secrets.GOOGLE_ANALYTICS_KEY }}
|
||
run: |
|
||
mkdocs build --clean
|
||
mkdocs --version
|
||
|
||
- name: Adjust permissions
|
||
run: |
|
||
chmod -c -R +rX site/ | while read line; do
|
||
echo "::warning title=Invalid file permissions automatically fixed::$line"
|
||
done
|
||
|
||
- name: Upload to GitHub Pages
|
||
uses: actions/upload-pages-artifact@v3
|
||
with:
|
||
path: site
|
||
|
||
- name: Deploy to GitHub Pages
|
||
uses: actions/deploy-pages@v4
|
||
|
||
- name: Save build cache
|
||
uses: actions/cache/save@v4
|
||
with:
|
||
key: mkdocs-material-${{ hashfiles('.cache/**') }}
|
||
path: .cache
|