mirror of
https://github.com/godotengine/godot-docs.git
synced 2025-12-31 17:49:03 +03:00
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
90 lines
3.4 KiB
YAML
90 lines
3.4 KiB
YAML
name: Build documentation for offline usage
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
# Every week on Monday at midnight (UTC).
|
|
# This keeps the generated HTML documentation fresh.
|
|
- cron: '0 0 * * 1'
|
|
|
|
jobs:
|
|
build:
|
|
# Don't run scheduled runs on forks unless the CI_OFFLINE_DOCS_CRON variable is set to 'true'.
|
|
# Manual runs can still be triggered as normal.
|
|
if: ${{ github.repository_owner == 'godotengine' || github.event_name != 'schedule' || vars.CI_OFFLINE_DOCS_CRON == 'true' }}
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 180
|
|
strategy:
|
|
max-parallel: 1
|
|
fail-fast: false
|
|
matrix:
|
|
branch:
|
|
- master
|
|
- stable
|
|
- 3.6
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
ref: ${{ matrix.branch }}
|
|
|
|
- name: Get Python version
|
|
id: pythonv
|
|
run: |
|
|
echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Restore cached virtualenv
|
|
uses: actions/cache/restore@v5
|
|
with:
|
|
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
|
|
path: .venv
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
python -m pip install -r requirements.txt
|
|
echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH
|
|
echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV
|
|
sudo apt update
|
|
sudo apt install parallel libwebp7 imagemagick
|
|
|
|
- name: Save virtualenv cache
|
|
uses: actions/cache/save@v5
|
|
with:
|
|
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
|
|
path: .venv
|
|
|
|
- name: Sphinx - Build HTML
|
|
run: make SPHINXOPTS='--color -j 4' html
|
|
|
|
- uses: actions/upload-artifact@v6
|
|
with:
|
|
name: godot-docs-html-${{ matrix.branch }}
|
|
path: _build/html
|
|
# Keep the current build and the previous build (in case a scheduled build failed).
|
|
# This makes it more likely to have at least one successful build available at all times.
|
|
retention-days: 15
|
|
|
|
- name: Sphinx - Build ePub
|
|
run: |
|
|
# Convert WebP images to PNG and replace references, so that ePub readers can display those images.
|
|
# The ePub 3.0 specification has WebP support, but it's not widely supported by apps and e-readers yet.
|
|
shopt -s globstar nullglob
|
|
parallel --will-cite convert {} {.}.png ::: {about,community,contributing,getting_started,img,tutorials}/**/*.webp
|
|
parallel --will-cite sed -i "s/\\.webp$/\\.png/g" ::: {about,community,contributing,getting_started,tutorials}/**/*.rst
|
|
|
|
# Remove banners at the top of each page when building `latest`.
|
|
sed -i 's/"godot_is_latest": True/"godot_is_latest": False/' conf.py
|
|
sed -i 's/"godot_show_article_status": True/"godot_show_article_status": False/' conf.py
|
|
|
|
make SPHINXOPTS='--color -j 4' epub
|
|
|
|
- uses: actions/upload-artifact@v6
|
|
with:
|
|
name: godot-docs-epub-${{ matrix.branch }}
|
|
path: _build/epub/GodotEngine.epub
|
|
# Keep the current build and the previous build (in case a scheduled build failed).
|
|
# This makes it more likely to have at least one successful build available at all times.
|
|
retention-days: 15
|