Major improvements to feed management across all workflows:
1. **build-openwrt-packages.yml:**
- Removed 'base' feed (not needed for SDK)
- Added comprehensive error handling with retry logic
- Verify feed directories exist after update
- Fail fast if feeds don't update successfully
- Log feed update/install output for debugging
2. **build-secubox-images.yml & test-validate.yml:**
- Added feed verification after update/install
- Capture logs for debugging feed issues
- Exit with error if critical feeds missing
- Show feed directory sizes for verification
Key changes:
- Feeds are now validated to exist before continuing
- Better error messages when feeds fail to update
- Logs captured for troubleshooting
- Workflow fails immediately if feeds missing
This should fix the 'find: feeds/packages: No such file or directory'
error by ensuring feeds are actually cloned successfully.
Enhanced the firmware build workflow with better diagnostics:
1. Added directory listing before artifact collection to show what was built
2. Changed collection strategy to copy all files from target dir (excluding
metadata like .ipk, .manifest, .json, .buildinfo)
3. Added warnings when no firmware images are found
4. Added file listing after successful builds to verify output
5. Show file sizes during collection
This should help identify why firmware artifacts might be missing:
- Shows exactly what files were generated
- Provides clear warnings if target directory is empty
- Helps debug firmware build issues
The new approach copies all firmware image files regardless of extension,
which is more robust than pattern matching specific file types.
Added comprehensive documentation about the SecuBox menu hierarchy:
- Visual tree representation of the complete menu structure
- Explanation of category parent menus
- Troubleshooting guide for menu visibility issues
This helps users understand how modules are organized in LuCI
and how to resolve common menu-related issues.
Added missing category parent menu entries that other SecuBox modules
depend on:
- admin/secubox/security (Security & Monitoring)
- admin/secubox/network (Network Management)
- admin/secubox/system (System & Performance)
Without these parent menus, individual modules like crowdsec, network-modes,
and system-hub couldn't register their menu entries under admin/secubox/*/
This allows all SecuBox modules to appear in the LuCI menu hierarchy.
Fixes: luci-app-secubox menu structure
The RPCD backend was generating module IDs with dashes (network-modes,
client-guardian, etc.) but the UCI config uses underscores (network_modes,
client_guardian, etc.). This mismatch prevented modules from being loaded
and displayed in the dashboard.
Fixed by adding conversion of dashes to underscores when generating
module IDs from RPCD script names.
Fixes: luci-app-secubox/root/usr/libexec/rpcd/secubox:18
Extended the feed removal to also exclude the routing feed, which was
causing the same indexing error during make defconfig.
Now removing both telephony and routing feeds from feeds.conf.default
before updating feeds in all three workflows.
This ensures only base, packages, and luci feeds are used.
Moved telephony removal to occur BEFORE './scripts/feeds update' to prevent
the telephony feed from ever being cloned or indexed. The previous fix tried
to remove telephony after feeds were already updated, which was too late.
Key changes:
- Remove telephony from feeds.conf.default BEFORE feed updates
- Keep final cleanup before make defconfig as safety measure
- Applies to all three workflows
This should completely eliminate the 'Collecting package info: feeds/telephony'
error during make defconfig.
The telephony feed was causing 'Collecting package info' failures during
make defconfig. This fix removes the telephony feed directory and references
from feeds.conf.default before running defconfig in all workflows.
Fixes applied to:
- build-openwrt-packages.yml
- build-secubox-images.yml
- test-validate.yml