Build Docker image for platform using ci-compile.py logic. Args: platform: Board platform name (e.g., 'esp32dev', 'esp32s3') progress: Whether to show progress indicators Returns: Exit code (0 for success, non-zero for failure)
(self, platform: str, progress: bool = True)
| 327 | return False |
| 328 | |
| 329 | def build_board_image(self, platform: str, progress: bool = True) -> int: |
| 330 | """Build Docker image for platform using ci-compile.py logic. |
| 331 | |
| 332 | Args: |
| 333 | platform: Board platform name (e.g., 'esp32dev', 'esp32s3') |
| 334 | progress: Whether to show progress indicators |
| 335 | |
| 336 | Returns: |
| 337 | Exit code (0 for success, non-zero for failure) |
| 338 | """ |
| 339 | if progress: |
| 340 | print(f"🔨 Building Docker image for {platform}...") |
| 341 | print(" This will take approximately 30 minutes") |
| 342 | print(" Progress will be shown below:") |
| 343 | print() |
| 344 | |
| 345 | # Build command: uv run ci/ci-compile.py --docker --build {platform} Blink |
| 346 | build_cmd = [ |
| 347 | "uv", |
| 348 | "run", |
| 349 | "ci/ci-compile.py", |
| 350 | platform, |
| 351 | "--examples", |
| 352 | "Blink", |
| 353 | "--docker", |
| 354 | "--build", |
| 355 | ] |
| 356 | |
| 357 | proc = RunningProcess( |
| 358 | build_cmd, |
| 359 | env=get_docker_env(), |
| 360 | timeout=1800000, # 30 minutes in milliseconds |
| 361 | auto_run=True, |
| 362 | ) |
| 363 | |
| 364 | # Stream build output |
| 365 | with proc.line_iter(timeout=None) as it: |
| 366 | for line in it: |
| 367 | print(line) |
| 368 | |
| 369 | returncode = cast(int, proc.wait()) |
| 370 | |
| 371 | if returncode == 0 and progress: |
| 372 | print() |
| 373 | print(f"✅ Docker image for {platform} built successfully") |
| 374 | print() |
| 375 | elif returncode != 0: |
| 376 | print() |
| 377 | print(f"❌ Failed to build Docker image for {platform}") |
| 378 | print() |
| 379 | |
| 380 | return returncode |
| 381 | |
| 382 | def pull_image(self): |
| 383 | """Pull the Docker image if not already available.""" |
no test coverage detected