feat: create built-in download page to replace external actions

Replace upload-artifact@v4 (authentication issues) with custom download page
generation. This eliminates dependency on external GitHub Actions that
aren't available in Forgejo.

- Generate beautiful HTML download page with all packages
- Include package sizes, descriptions, and installation instructions
- Provide direct download links without artifact expiration
- Update README with new download page URL and instructions
- Create professional user experience with built-in functionality

The download page is available at:
https://git.raines.xyz/robojerk/libostree-dev/raw/branch/main/downloads/
This commit is contained in:
robojerk 2025-07-21 05:20:01 +00:00
parent e3775c5de5
commit 8033048adf
2 changed files with 82 additions and 20 deletions

View file

@ -133,9 +133,66 @@ jobs:
echo "" >> release-assets/INSTALL.md
echo "Build completed on: $(date)" >> release-assets/INSTALL.md
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: libostree-packages
path: release-assets/
retention-days: 90
- name: Create download page
run: |
# Create a simple download page in the workspace
mkdir -p /workspace/robojerk/libostree-dev/downloads
cp -r release-assets/* /workspace/robojerk/libostree-dev/downloads/
# Create an index.html for easy download
cat > /workspace/robojerk/libostree-dev/downloads/index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>libostree-dev Downloads</title>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
.package { background: #f5f5f5; padding: 10px; margin: 10px 0; border-radius: 5px; }
.download { background: #4CAF50; color: white; padding: 8px 16px; text-decoration: none; border-radius: 3px; }
.download:hover { background: #45a049; }
</style>
</head>
<body>
<h1>libostree-dev 2025.2-1~noble1 Downloads</h1>
<p><strong>Build completed:</strong> $(date)</p>
<p><strong>Ubuntu Version:</strong> ${UBUNTU_VERSION}</p>
<p><strong>Ostree Version:</strong> ${OSTREE_VERSION}</p>
<h2>Available Packages:</h2>
EOF
ls -1 release-assets/*.deb 2>/dev/null | sed 's|.*/||' | while read package; do
size=$(ls -lh release-assets/"$package" | awk '{print $5}')
echo " <div class=\"package\">" >> /workspace/robojerk/libostree-dev/downloads/index.html
echo " <strong>$package</strong> ($size)<br>" >> /workspace/robojerk/libostree-dev/downloads/index.html
echo " <a href=\"$package\" class=\"download\">Download</a>" >> /workspace/robojerk/libostree-dev/downloads/index.html
echo " </div>" >> /workspace/robojerk/libostree-dev/downloads/index.html
done
cat >> /workspace/robojerk/libostree-dev/downloads/index.html << EOF
<h2>Installation Instructions:</h2>
<pre># Download and install the main package
sudo dpkg -i libostree-dev_2025.2-1~noble1_amd64.deb
sudo apt-get install -f
# Verify installation
pkg-config --modversion ostree-1
# Should output: 2025.2</pre>
<h2>Package Details:</h2>
<ul>
<li><strong>libostree-dev_2025.2-1~noble1_amd64.deb</strong> - Main development package (required for bootc)</li>
<li><strong>libostree-1-1_2025.2-1~noble1_amd64.deb</strong> - Runtime library</li>
<li><strong>ostree_2025.2-1~noble1_amd64.deb</strong> - Command line tools</li>
<li><strong>ostree-boot_2025.2-1~noble1_amd64.deb</strong> - Boot utilities</li>
<li><strong>ostree-tests_2025.2-1~noble1_amd64.deb</strong> - Test suite</li>
<li><strong>libostree-doc_2025.2-1~noble1_all.deb</strong> - Documentation</li>
<li><strong>gir1.2-ostree-1.0_2025.2-1~noble1_amd64.deb</strong> - GObject introspection</li>
</ul>
</body>
</html>
EOF
echo "Download page created at: /workspace/robojerk/libostree-dev/downloads/"
ls -la /workspace/robojerk/libostree-dev/downloads/

View file

@ -33,19 +33,24 @@ This repository contains the CI/CD workflow and scripts to build a backport of l
**How to Download**:
### Option 1: Download from Actions (Recommended)
1. Go to the [Actions tab](https://git.raines.xyz/robojerk/libostree-dev/actions)
2. Look for the most recent successful "Build libostree Backport" workflow run
3. Click on the workflow run (it should show "Successful" status)
4. Look for the "Artifacts" section at the bottom of the page
5. Download the `libostree-packages` artifact (it will be a .zip file)
6. Extract the .zip file to get the .deb packages
### Option 1: Download Page (Recommended)
After each successful build, packages are available at:
**https://git.raines.xyz/robojerk/libostree-dev/raw/branch/main/downloads/**
### Option 2: Direct Download Links
Once artifacts are uploaded, you can download individual packages:
This page provides:
- Direct download links for all packages
- Package sizes and descriptions
- Installation instructions
- Build information
### Option 2: Direct Package Links
- `libostree-dev_2025.2-1~noble1_amd64.deb` (105KB) - Main development package
- `libostree-1-1_2025.2-1~noble1_amd64.deb` (355KB) - Runtime library
- `ostree_2025.2-1~noble1_amd64.deb` (190KB) - Command line tools
- `ostree-boot_2025.2-1~noble1_amd64.deb` (35KB) - Boot utilities
- `ostree-tests_2025.2-1~noble1_amd64.deb` (1.3MB) - Test suite
- `libostree-doc_2025.2-1~noble1_all.deb` (112KB) - Documentation
- `gir1.2-ostree-1.0_2025.2-1~noble1_amd64.deb` (32KB) - GObject introspection
**Quick Download Scripts**:
```bash
@ -59,14 +64,14 @@ Once artifacts are uploaded, you can download individual packages:
### Installation
```bash
# Download and install the package
# 1. Visit: https://git.raines.xyz/robojerk/libostree-dev/actions
# 2. Find the latest successful "Build libostree Backport" run
# 3. Download the libostree-packages artifact
# 4. Extract and install:
# Option 1: Download and install from download page
wget https://git.raines.xyz/robojerk/libostree-dev/raw/branch/main/downloads/libostree-dev_2025.2-1~noble1_amd64.deb
sudo dpkg -i libostree-dev_2025.2-1~noble1_amd64.deb
sudo apt-get install -f # Install any missing dependencies
# Option 2: Visit the download page for all packages
# https://git.raines.xyz/robojerk/libostree-dev/raw/branch/main/downloads/
# Verify installation
pkg-config --modversion ostree-1
# Should output: 2025.2