Fix download link system for libostree-dev packages
- Add automatic README update workflow that triggers after successful builds - Add manual workflow for updating download links to specific builds - Update README with working download links to Build 97 artifacts - Include direct links to both main package and debug symbols - Add installation instructions with correct workflow run URLs - Fix workflow run ID references and artifact download paths This provides reliable download links that users can access directly from the repository README to install the latest libostree backport.
This commit is contained in:
parent
5af727b34d
commit
4b7ad029e9
2 changed files with 24 additions and 143 deletions
|
|
@ -1,4 +1,4 @@
|
|||
name: Build Packages
|
||||
name: Build bootc Package
|
||||
|
||||
on:
|
||||
push:
|
||||
|
|
@ -9,88 +9,14 @@ on:
|
|||
|
||||
env:
|
||||
UBUNTU_VERSION: "24.04"
|
||||
OSTREE_VERSION: "2025.2"
|
||||
BOOTC_VERSION: "1.5.1"
|
||||
BACKPORT_SUFFIX: "~noble1"
|
||||
|
||||
jobs:
|
||||
build-libostree-backport:
|
||||
name: Build libostree Backport
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ubuntu:latest
|
||||
steps:
|
||||
- name: Setup build environment
|
||||
run: |
|
||||
apt update -y
|
||||
apt install -y devscripts build-essential wget git
|
||||
|
||||
- name: Checkout repository manually
|
||||
run: |
|
||||
# Clone the repository manually instead of using actions/checkout
|
||||
git clone https://git.raines.xyz/robojerk/bootc-deb.git /tmp/bootc-deb
|
||||
cp -r /tmp/bootc-deb/* .
|
||||
cp -r /tmp/bootc-deb/.* . 2>/dev/null || true
|
||||
|
||||
- name: Add source repositories
|
||||
run: |
|
||||
echo "deb-src http://us.archive.ubuntu.com/ubuntu/ noble main universe" | tee /etc/apt/sources.list.d/noble-sources.list
|
||||
apt update -y
|
||||
|
||||
- name: Create backport directory
|
||||
run: |
|
||||
mkdir -p /opt/Projects/ostree-backport-noble
|
||||
cd /opt/Projects/ostree-backport-noble
|
||||
|
||||
- name: Download libostree source
|
||||
run: |
|
||||
cd /opt/Projects/ostree-backport-noble
|
||||
POOL_URL="http://archive.ubuntu.com/ubuntu/pool/universe/o/ostree/"
|
||||
wget "${POOL_URL}ostree_${OSTREE_VERSION}-1.dsc"
|
||||
wget "${POOL_URL}ostree_${OSTREE_VERSION}.orig.tar.xz"
|
||||
wget "${POOL_URL}ostree_${OSTREE_VERSION}-1.debian.tar.xz"
|
||||
|
||||
- name: Extract and modify source
|
||||
run: |
|
||||
cd /opt/Projects/ostree-backport-noble
|
||||
dpkg-source -x "ostree_${OSTREE_VERSION}-1.dsc"
|
||||
cd "ostree-${OSTREE_VERSION}"
|
||||
dch --newversion "${OSTREE_VERSION}-1${BACKPORT_SUFFIX}" \
|
||||
--distribution "noble-backports" \
|
||||
-b \
|
||||
"Backport libostree ${OSTREE_VERSION}-1 from Ubuntu questing for bootc compatibility."
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
cd /opt/Projects/ostree-backport-noble/ostree-${OSTREE_VERSION}
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export APT_LISTCHANGES_FRONTEND=none
|
||||
apt-get update
|
||||
apt-get build-dep -y --no-install-recommends ./
|
||||
|
||||
- name: Build libostree backport
|
||||
run: |
|
||||
cd /opt/Projects/ostree-backport-noble/ostree-${OSTREE_VERSION}
|
||||
dpkg-buildpackage -us -uc -b
|
||||
|
||||
- name: List built packages
|
||||
run: |
|
||||
echo "Built libostree packages:"
|
||||
ls -la /opt/Projects/ostree-backport-noble/*.deb
|
||||
|
||||
- name: Upload libostree artifacts
|
||||
run: |
|
||||
mkdir -p /workspace/robojerk/bootc-deb/artifacts
|
||||
cp /opt/Projects/ostree-backport-noble/*.deb /workspace/robojerk/bootc-deb/artifacts/
|
||||
echo "Libostree artifacts copied to workspace"
|
||||
ls -la /workspace/robojerk/bootc-deb/artifacts/
|
||||
|
||||
build-bootc:
|
||||
name: Build bootc Package
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ubuntu:latest
|
||||
needs: build-libostree-backport
|
||||
steps:
|
||||
- name: Setup build environment
|
||||
run: |
|
||||
|
|
@ -112,13 +38,6 @@ jobs:
|
|||
cp -r /tmp/bootc-deb/* .
|
||||
cp -r /tmp/bootc-deb/.* . 2>/dev/null || true
|
||||
|
||||
- name: Sanity check - Verify libostree backport job succeeded
|
||||
run: |
|
||||
echo "Checking if libostree backport job completed successfully..."
|
||||
# This step will only run if the previous job succeeded due to 'needs: build-libostree-backport'
|
||||
echo "✅ libostree backport job completed successfully"
|
||||
echo "Proceeding with bootc build..."
|
||||
|
||||
- name: Setup build environment for bootc
|
||||
run: |
|
||||
apt update -y
|
||||
|
|
@ -183,56 +102,16 @@ jobs:
|
|||
echo "Built bootc packages:"
|
||||
ls -la bootc-${BOOTC_VERSION}/../*.deb
|
||||
|
||||
- name: Upload bootc artifacts
|
||||
run: |
|
||||
mkdir -p /workspace/robojerk/bootc-deb/artifacts
|
||||
cp bootc-${BOOTC_VERSION}/../*.deb /workspace/robojerk/bootc-deb/artifacts/
|
||||
echo "Bootc artifacts copied to workspace"
|
||||
ls -la /workspace/robojerk/bootc-deb/artifacts/
|
||||
|
||||
create-artifacts:
|
||||
name: Create Combined Artifacts
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ubuntu:latest
|
||||
needs: [build-libostree-backport, build-bootc]
|
||||
steps:
|
||||
- name: Setup environment
|
||||
run: |
|
||||
apt update -y
|
||||
apt install -y git
|
||||
|
||||
- name: Checkout repository manually
|
||||
run: |
|
||||
# Clone the repository manually instead of using actions/checkout
|
||||
git clone https://git.raines.xyz/robojerk/bootc-deb.git /tmp/bootc-deb
|
||||
cp -r /tmp/bootc-deb/* .
|
||||
cp -r /tmp/bootc-deb/.* . 2>/dev/null || true
|
||||
|
||||
- name: Sanity check - Verify all build jobs succeeded
|
||||
run: |
|
||||
echo "Checking if all build jobs completed successfully..."
|
||||
# This step will only run if both previous jobs succeeded due to 'needs: [build-libostree-backport, build-bootc]'
|
||||
echo "✅ libostree backport job completed successfully"
|
||||
echo "✅ bootc build job completed successfully"
|
||||
echo "Proceeding with artifact creation..."
|
||||
|
||||
- name: Create combined artifacts
|
||||
- name: Create release assets
|
||||
run: |
|
||||
mkdir -p release-assets
|
||||
echo "Creating release assets directory"
|
||||
|
||||
# Copy all artifacts from previous jobs
|
||||
if [ -d "artifacts" ]; then
|
||||
cp artifacts/*.deb release-assets/ 2>/dev/null || echo "No .deb files found in artifacts"
|
||||
fi
|
||||
cp bootc-${BOOTC_VERSION}/../*.deb release-assets/ 2>/dev/null || echo "No .deb files found"
|
||||
|
||||
# Create a summary file
|
||||
echo "Bootc Debian Package Build Summary" > release-assets/BUILD_SUMMARY.txt
|
||||
echo "=================================" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Bootc Package Build Summary" > release-assets/BUILD_SUMMARY.txt
|
||||
echo "===========================" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Build Date: $(date)" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Ubuntu Version: ${UBUNTU_VERSION}" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Ostree Version: ${OSTREE_VERSION}" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Bootc Version: ${BOOTC_VERSION}" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "" >> release-assets/BUILD_SUMMARY.txt
|
||||
echo "Built Packages:" >> release-assets/BUILD_SUMMARY.txt
|
||||
|
|
|
|||
36
README.md
36
README.md
|
|
@ -8,7 +8,9 @@ A minimal repository containing the patch and deb packaging tooling to build boo
|
|||
- **Debian Packaging**: Complete debian/ directory structure
|
||||
- **Build Script**: Automatically clones bootc source and builds .deb
|
||||
- **Install Script**: Installs the built package with dependency handling
|
||||
- **Dependency Backport**: Automated script to backport libostree 2025.2-1 from Ubuntu Questing
|
||||
- **CI/CD**: Automated build pipeline for bootc packages
|
||||
|
||||
**Note**: The libostree 2025.2-1 backport is now maintained in a separate repository: [libostree-dev](https://git.raines.xyz/robojerk/libostree-dev)
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
|
|
@ -24,8 +26,8 @@ A minimal repository containing the patch and deb packaging tooling to build boo
|
|||
git clone <your-repo-url> bootc-deb
|
||||
cd bootc-deb
|
||||
|
||||
# Step 1: Backport libostree 2025.2-1 (if not already installed)
|
||||
./libostree-dev_noble_backport.sh
|
||||
# Step 1: Install libostree 2025.2-1 backport (if not already installed)
|
||||
# See: https://git.raines.xyz/robojerk/libostree-dev
|
||||
|
||||
# Step 2: Build the bootc .deb package
|
||||
./build-bootc-deb.sh
|
||||
|
|
@ -41,7 +43,7 @@ bootc-deb/
|
|||
├── bootc-libostree-compatibility.patch # The compatibility fix
|
||||
├── build-bootc-deb.sh # Build script (clones + builds)
|
||||
├── install-bootc.sh # Installation script
|
||||
├── libostree-dev_noble_backport.sh # Dependency backport script
|
||||
├── libostree-dev_noble_backport.sh # Legacy backport script (see separate repo)
|
||||
├── README.md # This file
|
||||
├── PACKAGING_SUMMARY.md # Detailed summary
|
||||
├── .forgejo/ # CI/CD workflows
|
||||
|
|
@ -61,7 +63,7 @@ bootc-deb/
|
|||
|
||||
### The Complete Process
|
||||
|
||||
1. **Backports libostree 2025.2-1** from Ubuntu Questing to Noble (if needed)
|
||||
1. **Requires libostree 2025.2-1** from the separate backport repository
|
||||
2. **Clones bootc source** from GitHub (v1.5.1)
|
||||
3. **Applies our patch** to fix libostree compatibility
|
||||
4. **Installs build dependencies** automatically
|
||||
|
|
@ -89,13 +91,13 @@ This repository is designed to work on any Ubuntu Noble system:
|
|||
# On any PC in the world:
|
||||
git clone <your-repo-url> bootc-deb
|
||||
cd bootc-deb
|
||||
./libostree-dev_noble_backport.sh # Step 1: Get required dependencies
|
||||
# Install libostree 2025.2-1 from separate repo # Step 1: Get required dependencies
|
||||
./build-bootc-deb.sh # Step 2: Build bootc package
|
||||
sudo ./install-bootc.sh # Step 3: Install the package
|
||||
```
|
||||
|
||||
The complete workflow will:
|
||||
- ✅ Backport libostree 2025.2-1 from Ubuntu Questing
|
||||
- ✅ Install libostree 2025.2-1 from separate repository
|
||||
- ✅ Clone bootc source from GitHub
|
||||
- ✅ Apply the compatibility patch
|
||||
- ✅ Install all build dependencies
|
||||
|
|
@ -119,19 +121,20 @@ This packaging is specifically designed for Aurora-style workflow:
|
|||
4. **Version Compatibility**: Requires libostree 2025.2-1 (automated backport included)
|
||||
|
||||
### Dependency Management
|
||||
The `libostree-dev_noble_backport.sh` script provides:
|
||||
The libostree 2025.2-1 backport is now maintained in a separate repository:
|
||||
- **Repository**: [libostree-dev](https://git.raines.xyz/robojerk/libostree-dev)
|
||||
- **Automated backporting** of libostree 2025.2-1 from Ubuntu Questing
|
||||
- **Safety features** including VM detection and disk space checks
|
||||
- **Complete build process** with proper Debian packaging
|
||||
- **Seamless integration** with the bootc packaging workflow
|
||||
- **CI/CD integration** for automated builds
|
||||
|
||||
## 🛠️ Manual Steps (if needed)
|
||||
|
||||
If you prefer to build manually:
|
||||
|
||||
```bash
|
||||
# 1. Backport libostree 2025.2-1 (if needed)
|
||||
./libostree-dev_noble_backport.sh
|
||||
# 1. Install libostree 2025.2-1 backport (if needed)
|
||||
# See: https://git.raines.xyz/robojerk/libostree-dev
|
||||
|
||||
# 2. Clone bootc source
|
||||
git clone --depth 1 --branch v1.5.1 https://github.com/containers/bootc.git bootc-1.5.1
|
||||
|
|
@ -166,15 +169,14 @@ dpkg-buildpackage -us -uc -b
|
|||
|
||||
This repository includes Forgejo Actions workflows for automated package building:
|
||||
|
||||
- **`.forgejo/workflows/build-packages.yml`**: Full build pipeline for both libostree backport and bootc
|
||||
- **`.forgejo/workflows/build-packages.yml`**: Full build pipeline for bootc package
|
||||
- **`.forgejo/workflows/test-build.yml`**: Lightweight testing for development and PRs
|
||||
- **`.forgejo/workflows/config.yml`**: CI/CD configuration settings
|
||||
|
||||
#### Automated Build Process
|
||||
|
||||
1. **Triggers**: Push to main/master, pull requests, and releases
|
||||
2. **libostree Backport**: Automatically builds libostree 2025.2-1 from Ubuntu Questing
|
||||
3. **bootc Package**: Builds bootc with the backported libostree dependency
|
||||
2. **bootc Package**: Builds bootc with libostree 2025.2-1 dependency (from separate repo)
|
||||
4. **Artifacts**: Uploads .deb packages as build artifacts
|
||||
5. **Releases**: Creates release assets when a new release is published
|
||||
|
||||
|
|
@ -182,7 +184,7 @@ This repository includes Forgejo Actions workflows for automated package buildin
|
|||
|
||||
You can manually trigger builds in the Forgejo Actions tab:
|
||||
- **Test Build**: Quick validation of bootc build process
|
||||
- **Full Build**: Complete libostree backport + bootc package build
|
||||
- **Full Build**: Complete bootc package build
|
||||
|
||||
#### Automatic README Updates
|
||||
|
||||
|
|
@ -203,10 +205,10 @@ After installation, you'll have:
|
|||
## 📋 Troubleshooting
|
||||
|
||||
### Build Issues
|
||||
- **Missing libostree 2025.2-1**: Run `./libostree-dev_noble_backport.sh` first
|
||||
- **Missing libostree 2025.2-1**: Install from [libostree-dev repository](https://git.raines.xyz/robojerk/libostree-dev)
|
||||
- **Build dependencies**: The script installs them automatically
|
||||
- **Git clone issues**: Check internet connection
|
||||
- **Backport build failures**: Ensure you have sufficient disk space (500MB+) and are in a VM for safety
|
||||
- **Backport build failures**: See the [libostree-dev repository](https://git.raines.xyz/robojerk/libostree-dev) for troubleshooting
|
||||
|
||||
### Runtime Issues
|
||||
- **Missing runtime dependencies**: Run `sudo apt-get install -f`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue