- 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
138 lines
No EOL
4.1 KiB
Markdown
138 lines
No EOL
4.1 KiB
Markdown
# 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 |