Add multi-distribution ostree backport support for Ubuntu Noble and Debian Trixie
- 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
This commit is contained in:
parent
23c2ad7ace
commit
38e017cef3
10 changed files with 1018 additions and 21 deletions
138
CI-CD-IMPROVEMENTS.md
Normal file
138
CI-CD-IMPROVEMENTS.md
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
# 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_all` parameter 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
|
||||
```yaml
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target_distro: noble # or trixie
|
||||
build_all: false
|
||||
```
|
||||
|
||||
### All Distributions Build
|
||||
```yaml
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target_distro: noble # ignored when build_all=true
|
||||
build_all: true
|
||||
```
|
||||
|
||||
### Test Mode
|
||||
```yaml
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target_distro: noble # or trixie
|
||||
```
|
||||
|
||||
## 📊 Matrix Configuration
|
||||
|
||||
### Ubuntu Noble
|
||||
```yaml
|
||||
- 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
|
||||
```yaml
|
||||
- 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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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
|
||||
|
||||
1. **Reliability**: Better error handling prevents silent failures
|
||||
2. **Flexibility**: Support for single or multi-distribution builds
|
||||
3. **Debugging**: Detailed logging for troubleshooting
|
||||
4. **Testing**: Quick validation workflow for rapid iteration
|
||||
5. **Monitoring**: Upload statistics and success tracking
|
||||
6. **Maintainability**: Clear separation of concerns and configuration
|
||||
|
||||
## 🎯 Usage Examples
|
||||
|
||||
### GitHub Actions UI
|
||||
1. Go to Actions → Build ostree Backports
|
||||
2. Click "Run workflow"
|
||||
3. Select target distribution or "Build all"
|
||||
4. Monitor progress with detailed logging
|
||||
|
||||
### Test Mode
|
||||
1. Go to Actions → Test ostree Build
|
||||
2. Click "Run workflow"
|
||||
3. Select distribution to test
|
||||
4. Quick validation of build process
|
||||
|
||||
## 📋 Workflow Files
|
||||
|
||||
- `build-ostree-backports.yml` - Main multi-distribution build workflow
|
||||
- `test-build.yml` - Quick validation workflow
|
||||
- `build-libostree-backport.yml` - Legacy single-distribution workflow (kept for reference)
|
||||
- `manual-update-readme.yml` - Documentation update workflow
|
||||
- `update-readme.yml` - Automated README updates
|
||||
Loading…
Add table
Add a link
Reference in a new issue