Enhance setup and testing scripts for improved package management and logging

- Updated setup.sh to check for Nala installation and provide alternative installation methods based on Ubuntu version.
- Added error handling for package installation, allowing fallback to apt if Nala fails.
- Introduced startup.sh to perform container startup checks, including system info and permissions for logs directory.
- Created test-setup.sh to validate bootstrap and setup scripts, including detailed logging of package availability and installation results.
- Implemented checks for missing packages and provided recommendations for manual installation.
- Enhanced logging for better traceability of actions and errors during setup and testing processes.
This commit is contained in:
Peter Wood
2025-05-12 13:59:15 -04:00
parent 78d64d5ee5
commit 9a941d1752
11 changed files with 1901 additions and 16 deletions

View File

@@ -93,6 +93,41 @@ curl -fsSL https://raw.githubusercontent.com/acedanger/shell/main/bootstrap.sh |
- Configure zoxide for better navigation
- Install and configure Git
## Testing
The repository includes a comprehensive testing framework to validate the shell setup process across different environments.
### Docker-Based Testing
Tests are run in isolated Docker containers to ensure consistent, repeatable validation:
- **Ubuntu 24.04 environment**: Tests compatibility with the latest Ubuntu LTS
- **Debian 12 environment**: Tests compatibility with Debian Stable
### Test Coverage
The tests validate:
- Package availability in repositories
- Successful installation of all packages in `packages.list`
- Oh My Zsh installation
- Zsh plugin installation
- Dotfile symlinking
- NVM and Node.js setup
### Running Tests
```bash
# Test your setup on Ubuntu
./run-docker-tests.sh ubuntu
# Test your setup on Debian
./run-docker-tests.sh debian
# Run a full bootstrap test (including installation)
./run-docker-tests.sh full-ubuntu
```
For more details on testing, see [Testing Documentation](../docs/testing.md).
## Manual Steps
If you need to manually set up aliases: