- Add main ostree-backport.sh script with distribution selection - Add wrapper scripts: backport-noble.sh and backport-trixie.sh - Add usage-guide.sh for comprehensive documentation - Update CI/CD workflows with improved multi-distribution support - Add test-build.yml workflow for quick validation - Update README.md with multi-distribution documentation - Add CI-CD-IMPROVEMENTS.md with detailed workflow documentation - Remove old .deb files (steam.deb, wget_1.21.4-1ubuntu4.1_amd64.deb) Features: - Ubuntu Noble: Source from Questing, target Noble - Debian Trixie: Source from sid, target Trixie - Enhanced error handling and logging - Manual triggers for single/all distributions - Comprehensive CI/CD documentation
4.1 KiB
4.1 KiB
CI/CD Improvements Summary
🚀 Enhanced Workflows
1. Main Build Workflow (build-ostree-backports.yml)
Key Improvements:
- ✅ Matrix Strategy: Proper multi-distribution support with dynamic matrix generation
- ✅ Manual Triggers: Support for single distribution or all distributions
- ✅ Better Error Handling: Comprehensive error checking and exit codes
- ✅ Detailed Logging: Step-by-step progress with distribution-specific context
- ✅ Upload Statistics: Success/failure counters with warnings
- ✅ Package Path Configuration: Distribution-specific upload paths
New Features:
build_allparameter for building both distributions simultaneously- Distribution-specific package upload paths (
noble/main,trixie/main) - Enhanced error reporting with GitHub Actions warnings
- Improved source download with error checking
2. Test Workflow (test-build.yml)
Purpose:
- Quick validation of build process
- Tests source download from both distributions
- Verifies source extraction and changelog modification
- Fast feedback before full builds
Features:
- Manual trigger with distribution selection
- Step-by-step validation
- Clear success/failure reporting
🎯 Manual Trigger Options
Single Distribution Build
workflow_dispatch:
inputs:
target_distro: noble # or trixie
build_all: false
All Distributions Build
workflow_dispatch:
inputs:
target_distro: noble # ignored when build_all=true
build_all: true
Test Mode
workflow_dispatch:
inputs:
target_distro: noble # or trixie
📊 Matrix Configuration
Ubuntu Noble
- target_distro: noble
distro_type: ubuntu
source_release: questing
target_release: noble
backport_suffix: ~noble1
pool_url: http://archive.ubuntu.com/ubuntu/pool/universe/o/ostree/
sources_list: "deb-src http://us.archive.ubuntu.com/ubuntu/ noble main universe"
package_upload_path: noble/main
Debian Trixie
- target_distro: trixie
distro_type: debian
source_release: sid
target_release: trixie
backport_suffix: ~trixie1
pool_url: http://deb.debian.org/debian/pool/main/o/ostree/
sources_list: "deb-src http://deb.debian.org/debian/ trixie main contrib non-free"
package_upload_path: trixie/main
🔧 Error Handling Improvements
Source Download
wget "${POOL_URL}ostree_${OSTREE_VERSION}-${OSTREE_DEBIAN_REVISION}.dsc" || exit 1
wget "${POOL_URL}ostree_${OSTREE_VERSION}.orig.tar.xz" || exit 1
wget "${POOL_URL}ostree_${OSTREE_VERSION}-${OSTREE_DEBIAN_REVISION}.debian.tar.xz" || exit 1
Build Process
dpkg-source -x "ostree_${OSTREE_VERSION}-${OSTREE_DEBIAN_REVISION}.dsc" || exit 1
apt-get build-dep -y --no-install-recommends ./ || exit 1
dpkg-buildpackage -us -uc -b || exit 1
Upload Statistics
upload_success=0
upload_failed=0
# ... upload logic ...
echo "Upload Summary for ${{ matrix.target_distro }}:"
echo " ✅ Successful uploads: $upload_success"
echo " ❌ Failed uploads: $upload_failed"
📈 Benefits
- Reliability: Better error handling prevents silent failures
- Flexibility: Support for single or multi-distribution builds
- Debugging: Detailed logging for troubleshooting
- Testing: Quick validation workflow for rapid iteration
- Monitoring: Upload statistics and success tracking
- Maintainability: Clear separation of concerns and configuration
🎯 Usage Examples
GitHub Actions UI
- Go to Actions → Build ostree Backports
- Click "Run workflow"
- Select target distribution or "Build all"
- Monitor progress with detailed logging
Test Mode
- Go to Actions → Test ostree Build
- Click "Run workflow"
- Select distribution to test
- Quick validation of build process
📋 Workflow Files
build-ostree-backports.yml- Main multi-distribution build workflowtest-build.yml- Quick validation workflowbuild-libostree-backport.yml- Legacy single-distribution workflow (kept for reference)manual-update-readme.yml- Documentation update workflowupdate-readme.yml- Automated README updates