# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-FileCopyrightText: 2011-2024 Blender Authors # 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)