engine=spotless

nb_files_neither_included_nor_excluded: 2
nb_files_formatted: 1
eventKey: random-45d83b03-63da-4530-b466-88f233119e60
This commit is contained in:
cleanthat[bot]
2025-10-23 09:50:49 +00:00
committed by GitHub
parent bea302aada
commit d44b445cec
+16 -1
View File
@@ -1,9 +1,11 @@
# suyuOS Build Disk Space Optimization
## Problem
The GitHub Actions workflow was failing with "No space left on device" errors during the suyuOS ISO build process. The error occurred because the build process was extremely disk-intensive, consuming more space than available on GitHub Actions runners (~14GB limit).
## Root Causes
1. **Large Package Installations**: Multiple pacman operations installing Qt5, Vulkan, gaming dependencies without cleanup
2. **Massive Emulator Repository Cloning**: Full recursive clones of 4+ large emulator repositories (suyu, eden, horinux, holoiso)
3. **Intensive Pre-building**: Full compilation of multiple emulators during CI, consuming several GB
@@ -14,34 +16,40 @@ The GitHub Actions workflow was failing with "No space left on device" errors du
## Implemented Solutions
### 1. Comprehensive Disk Space Monitoring
- Added disk usage reporting functions that show space consumption at each major step
- Implemented memory usage monitoring
- Added cleanup functions for pacman cache and temporary files
- Integrated monitoring throughout the entire workflow
### 2. Optimized Package Management
- **Consolidated Installations**: Combined multiple pacman operations into fewer, more efficient calls
- **Progressive Cleanup**: Added cache cleanup after each package installation phase
- **Conditional Dependencies**: Gaming dependencies only installed for release builds
- **Efficient Flags**: Used `--needed` flag to avoid reinstalling existing packages
### 3. Revolutionary Emulator Build Strategy
- **Eliminated Pre-building**: Replaced massive emulator compilation with lightweight build script preparation
- **Source References**: Created URL reference files instead of full repository clones
- **Deferred Building**: Moved actual emulator compilation to post-ISO creation or made it optional
- **Minimal Testing Clones**: Only clone small repositories for debug/testing builds
### 4. Optimized Build Environment
- **Efficient Working Directory**: Moved from `/tmp/suyuos-build` to `/workspace/suyuos-build-work` to avoid system conflicts
- **Lightweight Source Copying**: Copy only build scripts and references instead of full source trees
- **Progressive Cleanup**: Clean up intermediate files during the build process
### 5. Enhanced Build Process
- **Pre-build Cleanup**: Clean caches and temporary files before starting ISO build
- **Better Error Handling**: Show disk usage and logs when build fails
- **Post-build Cleanup**: Remove large working directories after successful build
### 6. Updated Build Scripts
- **Modernized build-emulators**: Updated to work with new lightweight approach
- **Disk Space Awareness**: Added disk space checking in build scripts
- **Graceful Fallbacks**: Create placeholder executables when builds fail due to space constraints
@@ -50,6 +58,7 @@ The GitHub Actions workflow was failing with "No space left on device" errors du
## Key Changes Made
### GitHub Actions Workflow (.github/workflows/build-iso.yml)
- Added comprehensive disk space monitoring functions
- Optimized package installation with progressive cleanup
- Replaced emulator cloning with lightweight source preparation
@@ -59,12 +68,14 @@ The GitHub Actions workflow was failing with "No space left on device" errors du
- Added post-build cleanup step
### Build Script (airootfs/usr/local/bin/build-emulators)
- Updated to work with prepared build scripts instead of full clones
- Added disk space checking and cleanup functions
- Implemented graceful fallbacks for failed builds
- Optimized for space-constrained environments
## Expected Results
1. **Reduced Disk Usage**: Build process should use 60-80% less disk space
2. **Successful Builds**: Eliminate "No space left on device" errors
3. **Maintained Functionality**: All suyuOS features preserved in final ISO
@@ -73,19 +84,23 @@ The GitHub Actions workflow was failing with "No space left on device" errors du
6. **Improved Reliability**: Better error handling and recovery
## Monitoring and Validation
- Disk usage is reported at each major step
- Build logs include space consumption patterns
- Failed builds show disk usage for debugging
- Progressive cleanup ensures space is freed during build
## Backward Compatibility
- All existing suyuOS functionality is preserved
- ISO structure and content remain unchanged
- Build artifacts and release process unchanged
- Emulator availability maintained (with fallbacks if needed)
## Future Improvements
- Consider using GitHub Actions with larger runners for complex builds
- Implement build caching for repeated operations
- Add automatic cleanup of old artifacts
- Consider splitting build into multiple jobs for better resource management
- Consider splitting build into multiple jobs for better resource management