Blender 5.1.2 #1

Merged
stilobique merged 21 commits from Blender-5.1.2 into main 2026-07-31 10:57:39 +02:00
11 changed files with 108 additions and 48 deletions
Showing only changes of commit 693afc76fd - Show all commits
+3 -3
View File
@@ -2,16 +2,16 @@
<configuration default="false" name="Build BlenderDocker" type="docker-deploy" factoryName="dockerfile" server-name="Docker Desktop"> <configuration default="false" name="Build BlenderDocker" type="docker-deploy" factoryName="dockerfile" server-name="Docker Desktop">
<deployment type="dockerfile"> <deployment type="dockerfile">
<settings> <settings>
<option name="imageTag" value="stilobique/blender:5.2.0" /> <option name="imageTag" value="stilobique/blender:4.5.11" />
<option name="buildArgs"> <option name="buildArgs">
<list> <list>
<DockerEnvVarImpl> <DockerEnvVarImpl>
<option name="name" value="b3d_vs_major" /> <option name="name" value="b3d_vs_major" />
<option name="value" value="5.2" /> <option name="value" value="4.5" />
</DockerEnvVarImpl> </DockerEnvVarImpl>
<DockerEnvVarImpl> <DockerEnvVarImpl>
<option name="name" value="b3d_vs_minor" /> <option name="name" value="b3d_vs_minor" />
<option name="value" value="0" /> <option name="value" value="11" />
</DockerEnvVarImpl> </DockerEnvVarImpl>
</list> </list>
</option> </option>
+3 -1
View File
@@ -23,7 +23,9 @@ RUN git clone --depth 1 --branch v${b3d_vs_major}.${b3d_vs_minor} \
COPY ./scripts/gen_packages_txt.py /opt/blender/build_files/build_environment/gen_packages_txt.py COPY ./scripts/gen_packages_txt.py /opt/blender/build_files/build_environment/gen_packages_txt.py
RUN cd /opt/blender/build_files/build_environment && \ RUN cd /opt/blender/build_files/build_environment && \
python gen_packages_txt.py python gen_packages_txt.py
RUN python /opt/blender/build_files/build_environment/install_linux_packages.py RUN cd /opt/blender/build_files/build_environment && chmod a+x ./install_linux_packages.py && \
python install_linux_packages.py
RUN cd /opt/blender && make update RUN cd /opt/blender && make update
RUN cd /opt/blender && make -j$(nproc) RUN cd /opt/blender && make -j$(nproc)
+1 -2
View File
@@ -2,8 +2,7 @@
# Blender Docker # Blender Docker
This repository is an automated blender docker image file generated, it's usefully with blender addon unit test. To This repository is an automated blender docker image file generated, it's usefully with blender addon unit test.
build a new specific image, you need to update the `build.json` file with the new version witched ; or
# Adding an Addon # Adding an Addon
View File
+63
View File
@@ -0,0 +1,63 @@
import os
import docker
from .version import BlenderVersion
from pathlib import Path
from docker.errors import BuildError
class BlenderDocker:
def __init__(self, blender: BlenderVersion):
self._blender_version = blender
# Todo get a user config
# self._docker_client = docker.DockerClient(base_url=f'unix://{Path.home()}/.docker/desktop/docker.sock')
self._docker_client = docker.DockerClient(base_url=f'unix:///var/run/docker.sock')
self._docker_image = None
self._docker_file = Path(os.getcwd(), 'Dockerfile')
if not self._docker_file.exists():
print(f'Dockerfile not found: {self._docker_file}')
exit(1)
self.args = {
'b3d_vs_major': f'{self._blender_version.major}',
'b3d_vs_minor': f'{self._blender_version.minor}.{self._blender_version.hotfix}',
}
def build(self):
try:
print('\tBuilding Blender Docker')
print(f'\tWhere to build: {os.getcwd()}')
print(f'\tArgs: {self.args}')
print(f'\tTage generated: {self._blender_version.format_to_tag()}')
build = self._docker_client.images.build(
path=os.getcwd(),
buildargs=self.args,
tag=self._blender_version.format_to_tag(),
quiet=False,
)
print(f'\tBuilding Blender Docker Image done: {build}')
return build
except BuildError as e:
print("Hey something went wrong with image build!")
for line in e.build_log:
if 'stream' in line:
print(line['stream'].strip())
raise
@staticmethod
def tag(self):
print('\tSet Tags version and/or Latest')
pass
@staticmethod
def test(self):
print('\tTesting Blender Docker')
# docker run --rm stilobique/blender:5.1.2 ./blender --version
pass
def push(self):
# TODO Login to hub
pass
+26
View File
@@ -0,0 +1,26 @@
class BlenderVersion:
def __init__(self, version: str = '5.1.0'):
"""
Need an object like 'X.Y.Z' to work correctly, build a pythonic object about a blender version.
:param version:
"""
self.major : str = ''
self.minor : str = ''
self.hotfix : str = ''
self.version_object(version)
def version_object(self, version: str):
"""Set all version properties to a string"""
version = version.split('.')
self.major = version[0]
self.minor = version[1]
self.hotfix = version[2]
def format_to_tag(self) -> str:
"""From version information, format to return a string"""
return f'{self.major}.{self.minor}.{self.hotfix}'
def __str__(self):
return str(self.major + '.' + self.minor + '.' + self.hotfix)
-8
View File
@@ -1,8 +0,0 @@
{
"tags":
[{
"b3d_vs_major": 5.1,
"b3d_vs_minor": 2
}
]
}
-2
View File
@@ -1,2 +0,0 @@
- major: 5.1
minor: 2
+11 -31
View File
@@ -1,27 +1,10 @@
import os import os
import pathlib
import json from blender.version import BlenderVersion
import docker from blender.docker import BlenderDocker
import sys
# TODO Update readme file badge with blender version # TODO Update readme file badge with blender version
# TODO add a check if the image build are stored in the docker register # TODO add a check if the image build are stored in the docker register
def get_data_from_json() -> (str, str):
"""From the json file, get blender version (major and minor), and return this information."""
file = pathlib.Path(os.getcwd(), 'build.json')
with open(file, 'r') as f:
data = json.load(f)
f.close()
version_values = data['tags'][0]
major, minor = version_values['b3d_vs_major'], version_values['b3d_vs_minor']
return major, minor
def build_docker(b3d_version: (str, str), latest: bool = False): def build_docker(b3d_version: (str, str), latest: bool = False):
""" """
Generate docker image, request the blender version (major, minor) with the keyword b3d_version, and can be Generate docker image, request the blender version (major, minor) with the keyword b3d_version, and can be
@@ -52,14 +35,11 @@ def build_docker(b3d_version: (str, str), latest: bool = False):
if __name__ == "__main__": if __name__ == "__main__":
version = get_data_from_json() version = BlenderVersion(input("Give the blender version (X.Y.Z): "))
print(f'Start -> Setup the package with blender version "{version[0]}.{version[1]}"')
for arg in sys.argv: # build_docker(b3d_version=(f'{version.major}', f'{version.minor}.{version.hotfix}'),
if '--tag=' in arg: # latest=False)
print(f'Build with the tag "{arg}".')
build_docker(b3d_version=version, latest=True) print(f"Build a blender version {version}.")
break docker = BlenderDocker(version)
else: docker.build()
build_docker(b3d_version=version)
print(f'Start to build the docker file.')
pass
-1
View File
@@ -1 +0,0 @@
docker
+1
View File
@@ -0,0 +1 @@
docker==7.2.0