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
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.
+20 -6
View File
@@ -106,12 +106,17 @@ class BlenderDocker:
print('\tSet Tags version and/or Latest')
pass
def test(self):
"""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."""
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.
Based on `docker run --rm stilobique/blender:5.1.2 ./blender --version`
:return: True if no issue are returned
"""
logger = self._get_logger('test')
try:
print('Testing your Blender Docker image')
logger.info('Testing your Blender Docker image')
print(f'Testing your Blender Docker image {self._docker_image_name}')
logger.info(f'Testing your Blender Docker image {self._docker_image_name}.')
test = self._docker_client.containers.run(
name=f"Blender-Docker-Testing-{self._blender_version.tag_name_slugify()}",
@@ -120,13 +125,22 @@ class BlenderDocker:
auto_remove=True,
remove=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
print(f'Testing your Blender Docker image {self._docker_image_name} failed.')
return False
except ContainerError as e:
print(f'Container error: {e}')
exit(1)
-6
View File
@@ -5,12 +5,6 @@ import json
from pathlib import Path
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():
"""
+2 -1
View File
@@ -4,6 +4,7 @@ from blender.version import BlenderVersion
from blender.docker import BlenderDocker
# Todo Update readme file badge with blender version
# Todo
if __name__ == "__main__":
@@ -19,7 +20,7 @@ if __name__ == "__main__":
if test:
print('Push this image.')
docker.push()
# docker.push()
# Todo: Add a latest tag, check if this version are the latest
# Todo: Add a LTS tag, check if this version are a LTS