builder.braak.pro/buildbot/config/worker/blender/update.py
2024-11-20 16:13:44 +01:00

57 lines
1.5 KiB
Python

# SPDX-License-Identifier: GPL-2.0-or-later
# SPDX-FileCopyrightText: 2011-2024 Blender Authors
# <pep8 compliant>
import os
import sys
import worker.blender
import worker.utils
def _clean_folders(builder: worker.blender.CodeBuilder) -> None:
# Delete build folders.
if builder.needs_full_clean:
worker.utils.remove_dir(builder.build_dir)
else:
worker.utils.remove_dir(builder.build_dir / "Testing")
worker.utils.remove_dir(builder.build_dir / "bin" / "tests")
# Delete install and packaging folders
worker.utils.remove_dir(builder.install_dir)
worker.utils.remove_dir(builder.package_dir)
def update(builder: worker.blender.CodeBuilder) -> None:
_clean_folders(builder)
builder.update_source()
os.chdir(builder.code_path)
make_update_path = builder.code_path / "build_files" / "utils" / "make_update.py"
make_update_text = make_update_path.read_text()
if "def svn_update" in make_update_text:
worker.utils.error(
"Can't build branch or pull request that uses Subversion libraries."
)
worker.utils.error(
"Merge with latest main or release branch to use Git LFS libraries."
)
sys.exit(1)
# Run make update
cmd = [
sys.executable,
make_update_path,
"--no-blender",
"--use-linux-libraries",
"--use-tests",
"--architecture",
builder.architecture,
]
if builder.track_id not in ("v360", "vexp"):
cmd += ["--prune-destructive"]
worker.utils.call(cmd)