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/