Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,7 @@ updates:
schedule:
interval: "daily"
ignore:
# ReadTheDocs is staying on v1.
# We need to decide on when we upgrade Sphinx manually,
# as historically, this has been proven to often imply larger changes
# (RTD compat, upgrading extensions, other dependencies, our content, etc.).
- dependency-name: "sphinx"
32 changes: 28 additions & 4 deletions .github/workflows/build_offline_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,50 @@ jobs:
# 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-22.04
runs-on: ubuntu-24.04
timeout-minutes: 180
strategy:
matrix:
branch:
- master
- stable
- 3.6
permissions:
contents: write
steps:
- uses: actions/checkout@v4
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@v4
with:
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
path: .venv

- name: Install dependencies
run: |
sudo pip3 install -r requirements.txt
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

- name: Save virtualenv cache
uses: actions/cache/save@v4
with:
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
path: .venv

- name: Sphinx - Build HTML
run: make SPHINXOPTS='--color' html
run: make SPHINXOPTS='--color -j 4' html

- uses: actions/upload-artifact@v4
with:
Expand All @@ -52,7 +76,7 @@ jobs:
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' epub
make SPHINXOPTS='--color -j 4' epub

- uses: actions/upload-artifact@v4
with:
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/cherrypick.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ jobs:
Create-cherrypick-PR:
# The cherrypick label is hardcoded because `contains()` doesn't seem to be able to use an environment variable as a second argument.
if: ${{ github.event.pull_request.merged == true && contains( github.event.pull_request.labels.*.name, 'cherrypick:4.3' ) }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 10
env:
# "Ternary" hack featured in the official docs.
# When using "Squash and merge", the commit hash is the last merge commit of the pull request merge branch.
Expand All @@ -28,8 +29,11 @@ jobs:
COMMIT_HASH: ${{ github.event.pull_request.commits > 1 && github.sha || github.event.pull_request.head.sha }}
PR_NUMBER: ${{ github.event.number }}

permissions:
contents: write
pull-requests: write

steps:

- name: Checkout
uses: actions/checkout@v4
with:
Expand Down
33 changes: 29 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,47 @@ on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Style checks via pre-commit
uses: pre-commit/action@v3.0.1

- name: Get Python version
id: pythonv
run: |
echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_OUTPUT

- name: Restore cached virtualenv
uses: actions/cache/restore@v4
with:
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
path: .venv

- name: Install dependencies
run: sudo pip3 install -r requirements.txt
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

- name: Save virtualenv cache
uses: actions/cache/save@v4
with:
key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }}
path: .venv

# Use dummy builder to improve performance as we don't need the generated HTML in this workflow.
- name: Sphinx build
run: make SPHINXOPTS='--color -W' dummy
run: |
source .venv/bin/activate
make SPHINXOPTS='--color -j 4 -W' dummy
13 changes: 9 additions & 4 deletions .github/workflows/sync_class_ref.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ name: Sync Class Reference
on:
workflow_dispatch:
# Scheduled updates only run on the default/master branch.
# Other branches need to be run manually (usually after a new release for that branch).
schedule:
# Run it at night (European time) every Saturday.
# The offset is there to try and avoid the high load times.
# Run it at (European) night time every Saturday.
# The offset is there to try and avoid high load times.
- cron: '15 3 * * 6'

# Make sure jobs cannot overlap.
concurrency:
group: classref-sync-ci-master
group: classref-sync-ci-${{ github.ref_name }}
cancel-in-progress: true

jobs:
Expand All @@ -19,9 +20,13 @@ jobs:
# Manual runs can still be triggered as normal.
if: ${{ github.repository_owner == 'godotengine' || github.event_name != 'schedule' || vars.CI_SYNC_CLASS_REF_CRON == 'true' }}
name: Update class reference files based on the engine revision
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 10
env:
engine_rev: 'master'
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout the documentation repository
Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@
is_i18n = tags.has("i18n") # noqa: F821
print("Build language: {}, i18n tag: {}".format(language, is_i18n))

exclude_patterns = ["_build"]
exclude_patterns = [".*", "**/.*", "_build", "_tools"]

# fmt: off
# These imports should *not* be moved to the start of the file,
Expand Down
Loading