Compare commits

2 Commits
Author SHA1 Message Date
stilobique 61f00647f4 Small doc about all log and add more todo 2026-07-21 23:08:44 +02:00
stilobique ce68a96440 Setup test logging 2026-07-21 23:03:08 +02:00
4 changed files with 37 additions and 21 deletions
+7
View File
@@ -40,3 +40,10 @@ docker run --rm --entrypoint /bin/bash stilobique/blender:5.1.2 -c 'ldd /opt/ble
# Test fonctionnel # Test fonctionnel
docker run --rm stilobique/blender:5.1.2 ./blender -b --python-expr "import bpy; print('OK:', bpy.app.version_string)" docker run --rm stilobique/blender:5.1.2 ./blender -b --python-expr "import bpy; print('OK:', bpy.app.version_string)"
``` ```
# Logs
Some log are generated inside a `logs` folder.
- `build`: all operation on build docker file.
- `clean`: from the dedicated function to clean all dockers images and cache.
- `test`: simple class method to try a specific docker image.
+21 -7
View File
@@ -106,27 +106,41 @@ class BlenderDocker:
print('\tSet Tags version and/or Latest') print('\tSet Tags version and/or Latest')
pass pass
def test(self): def test(self) -> bool:
"""This method request an image (call the method build before) and try to execute the blender inside the container to check if the program can be correctly executed.""" """
This method request an image (call the method build before) and try to execute the blender inside the container
to check if the program can be correctly executed.
Based on `docker run --rm stilobique/blender:5.1.2 ./blender --version`
:return: True if no issue are returned
"""
logger = self._get_logger('test') logger = self._get_logger('test')
try: try:
print('Testing your Blender Docker image') print(f'Testing your Blender Docker image {self._docker_image_name}')
logger.info('Testing your Blender Docker image') logger.info(f'Testing your Blender Docker image {self._docker_image_name}.')
test = self._docker_client.containers.run( test = self._docker_client.containers.run(
name=f"Blender-Docker-Testing-{self._blender_version.tag_name_slugify()}", name=f"Blender-Docker-Testing-{self._blender_version.tag_name_slugify()}",
image=self._docker_image_name, image=self._docker_image_name,
command=['./blender', '--version'], command=['./blender', '--version'],
auto_remove = True, auto_remove=True,
remove=True, remove=True,
detach=True, detach=True,
stdout=True stdout=True,
stderr=True,
stream=True,
) )
result = test.wait()
exit_code = result.get('StatusCode')
print(f'\tResult: {test.logs()}') logger.info(f'Exit code return: {exit_code}')
logger.info(test.logs(stdout=True, stderr=True).decode('utf-8', errors='replace').strip())
if exit_code == 0:
return True return True
print(f'Testing your Blender Docker image {self._docker_image_name} failed.')
return False
except ContainerError as e: except ContainerError as e:
print(f'Container error: {e}') print(f'Container error: {e}')
exit(1) exit(1)
-6
View File
@@ -5,12 +5,6 @@ import json
from pathlib import Path from pathlib import Path
from subprocess import run, CalledProcessError from subprocess import run, CalledProcessError
# def clean_all_dockers():
# # bash docker context use default && docker system prune -a -f
# # bash docker context use podman && docker system prune -a -f
# # bash docker context use desktop-linux && docker system prune -a -f
# docker_client = docker.DockerClient(base_url=f'unix:///var/run/docker.sock')
def clean_all_dockers(): def clean_all_dockers():
""" """
+2 -1
View File
@@ -4,6 +4,7 @@ from blender.version import BlenderVersion
from blender.docker import BlenderDocker from blender.docker import BlenderDocker
# Todo Update readme file badge with blender version # Todo Update readme file badge with blender version
# Todo
if __name__ == "__main__": if __name__ == "__main__":
@@ -19,7 +20,7 @@ if __name__ == "__main__":
if test: if test:
print('Push this image.') print('Push this image.')
docker.push() # docker.push()
# Todo: Add a latest tag, check if this version are the latest # Todo: Add a latest tag, check if this version are the latest
# Todo: Add a LTS tag, check if this version are a LTS # Todo: Add a LTS tag, check if this version are a LTS