This directory contains Docker configurations for testing go-syspkg across multiple Linux distributions. The multi-OS Docker testing system is fully implemented and actively used for comprehensive cross-platform validation.
- ../../README.md - Project overview
- ../../CONTRIBUTING.md - Complete development workflow and testing guide
- ../../docs/ARCHITECTURE.md - Technical design and interfaces
- ../../docs/EXIT_CODES.md - Package manager exit code behavior
- Parser functions with captured outputs
- OS detection logic
- Command construction
- No actual package manager execution
- Real package manager availability checks
- Command output capture for test fixtures
- Limited package operations (list, search)
- Actual package installation/removal
- Privileged operations
- Snap/systemd dependent features
Note: The Docker testing system is fully operational with comprehensive multi-OS support.
Supported Operating Systems:
- Ubuntu 22.04: APT, Snap, Flatpak testing
- Rocky Linux 8: YUM testing with real RPM packages
- AlmaLinux 8: YUM testing and validation
- Fedora 39: DNF testing (implementation in progress)
- Alpine Linux: APK testing (implementation in progress)
Architecture Support:
- AMD64 (x86_64), ARM64 (aarch64/Apple Silicon)
make test-docker-all # Test all OS in parallelmake test-docker-ubuntu # Test APT/Snap/Flatpak on Ubuntu
make test-docker-rocky # Test YUM on Rocky Linux 8
make test-docker-alma # Test YUM on AlmaLinux 8
make test-docker-fedora # Test DNF on Fedora 39
make test-docker-alpine # Test APK on Alpine Linuxmake test-docker-clean # Remove test containers and images# Generate fresh fixtures from real package managers
make test-fixtures # Capture outputs from all supported OS
# Manual fixture generation for specific OS
docker exec -it syspkg-rocky-test bash
yum search vim > /workspace/testing/fixtures/yum/search-vim-rocky8.txtThe Docker testing system is fully integrated into CI/CD:
GitHub Actions Workflows:
- test-and-coverage.yml: Standard Ubuntu testing with APT/Snap/Flatpak
- multi-os-test.yml: Docker matrix testing across all supported OS
- build.yml: Multi-version Go build verification
Multi-OS Testing Matrix:
# .github/workflows/multi-os-test.yml (active)
strategy:
matrix:
include:
- os: ubuntu-22.04
pm: apt
dockerfile: ubuntu.Dockerfile
- os: rockylinux-8
pm: yum
dockerfile: rockylinux.Dockerfile
- os: almalinux-8
pm: yum
dockerfile: almalinux.Dockerfile
- os: fedora-39
pm: dnf
dockerfile: fedora.Dockerfile
- os: alpine-3.18
pm: apk
dockerfile: alpine.Dockerfile- Keep Images Minimal: Install only what's required for testing
- Cache Aggressively: Use Docker layer caching
- Parallelize Tests: Run different OS tests concurrently
- Mock External Calls: Don't actually install packages in tests
- Capture Real Outputs: Use containers to generate test fixtures