bootc-deb/.forgejo/workflows/build-packages.yml
robojerk 4b7ad029e9
Some checks failed
Build bootc Package / Build bootc Package (push) Failing after 1m23s
Test Build / Test bootc Build (with existing libostree) (push) Has been cancelled
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.
2025-07-21 03:21:14 +00:00

121 lines
No EOL
4.3 KiB
YAML

name: Build bootc Package
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch:
env:
UBUNTU_VERSION: "24.04"
BOOTC_VERSION: "1.5.1"
jobs:
build-bootc:
name: Build bootc Package
runs-on: ubuntu-latest
container:
image: ubuntu:latest
steps:
- name: Setup build environment
run: |
apt update -y
apt install -y git curl pkg-config build-essential
# Install Rust using rustup to get the latest version
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
# Verify Rust version
rustc --version
cargo --version
- 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: Setup build environment for bootc
run: |
apt update -y
apt install -y git curl pkg-config build-essential
# Install Rust using rustup to get the latest version
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
# Verify Rust version
rustc --version
cargo --version
- name: Clone bootc source
run: |
git clone --depth 1 --branch v${BOOTC_VERSION} https://github.com/containers/bootc.git bootc-${BOOTC_VERSION}
cd bootc-${BOOTC_VERSION}
- name: Debug - List files before patching
run: |
cd bootc-${BOOTC_VERSION}
echo "Current directory: $(pwd)"
echo "Files in current directory:"
ls -la
echo "Files in lib/src/ (if it exists):"
ls -la lib/src/ 2>/dev/null || echo "Directory does not exist"
echo "Patch file location:"
ls -la ../bootc-libostree-compatibility.patch
- name: Apply compatibility patch
run: |
cd bootc-${BOOTC_VERSION}
if [ ! -f ../bootc-libostree-compatibility.patch ]; then
echo "❌ ERROR: bootc-libostree-compatibility.patch not found!"
echo "This patch is required for bootc to work with the libostree backport."
exit 1
fi
# Apply patch with correct strip level for lib/src/cli.rs
echo "Applying patch to lib/src/cli.rs..."
patch -p1 < ../bootc-libostree-compatibility.patch
- name: Copy debian packaging
run: |
cd bootc-${BOOTC_VERSION}
if [ ! -d ../debian ]; then
echo "❌ ERROR: debian packaging directory not found!"
echo "The debian/ directory is required for building the package."
exit 1
fi
cp -r ../debian .
- name: Build bootc package
run: |
cd bootc-${BOOTC_VERSION}
echo "Building bootc package with libostree compatibility patch..."
# Source Rust environment for the build
source ~/.cargo/env
dpkg-buildpackage -us -uc -b
- name: List built packages
run: |
echo "Built bootc packages:"
ls -la bootc-${BOOTC_VERSION}/../*.deb
- name: Create release assets
run: |
mkdir -p release-assets
cp bootc-${BOOTC_VERSION}/../*.deb release-assets/ 2>/dev/null || echo "No .deb files found"
# Create a summary file
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 "Bootc Version: ${BOOTC_VERSION}" >> release-assets/BUILD_SUMMARY.txt
echo "" >> release-assets/BUILD_SUMMARY.txt
echo "Built Packages:" >> release-assets/BUILD_SUMMARY.txt
ls -la release-assets/*.deb 2>/dev/null || echo "No packages found" >> release-assets/BUILD_SUMMARY.txt
echo "Release assets created:"
ls -la release-assets/