name: Update README with Download Links on: workflow_run: workflows: ["Build Packages"] types: [completed] branches: [main, master] jobs: update-readme: name: Update README with Artifact Links runs-on: ubuntu-latest container: image: ubuntu:latest if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Setup environment run: | apt update -y apt install -y git curl - 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: Download artifacts manually run: | # Create artifacts directory mkdir -p /tmp/artifacts # Note: Manual artifact download would require API calls # For now, we'll create a placeholder or skip this step echo "Manual artifact download not implemented yet" echo "This would require Forgejo API calls to download artifacts" - name: Generate download section run: | echo "## 📦 Latest Packages" > /tmp/download_section.md echo "" >> /tmp/download_section.md echo "> **Note**: These packages are automatically built by CI/CD." >> /tmp/download_section.md echo "" >> /tmp/download_section.md if [ -d "/tmp/artifacts" ] && [ "$(ls -A /tmp/artifacts)" ]; then echo "### Download Links" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "| Package | Download |" >> /tmp/download_section.md echo "|---------|----------|" >> /tmp/download_section.md for file in /tmp/artifacts/*.deb; do if [ -f "$file" ]; then filename=$(basename "$file") if [[ "$filename" == *"libostree"* ]]; then package_name="libostree Backport" elif [[ "$filename" == *"bootc"* ]]; then package_name="bootc" else package_name="$filename" fi echo "| $package_name | $filename |" >> /tmp/download_section.md fi done echo "" >> /tmp/download_section.md echo "### Installation Instructions" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo '```bash' >> /tmp/download_section.md echo "# Download and install libostree backport first" >> /tmp/download_section.md echo "sudo dpkg -i .deb" >> /tmp/download_section.md echo "sudo apt --fix-broken install -y" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "# Then install bootc" >> /tmp/download_section.md echo "sudo dpkg -i .deb" >> /tmp/download_section.md echo "sudo apt --fix-broken install -y" >> /tmp/download_section.md echo '```' >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "*Last updated: $(date -u '+%Y-%m-%d %H:%M UTC')*" >> /tmp/download_section.md else echo "### Download Links" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "Packages are being built. Check the Actions tab for build status and download links." >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "### Installation Instructions" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo '```bash' >> /tmp/download_section.md echo "# Download and install libostree backport first" >> /tmp/download_section.md echo "sudo dpkg -i .deb" >> /tmp/download_section.md echo "sudo apt --fix-broken install -y" >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "# Then install bootc" >> /tmp/download_section.md echo "sudo dpkg -i .deb" >> /tmp/download_section.md echo "sudo apt --fix-broken install -y" >> /tmp/download_section.md echo '```' >> /tmp/download_section.md echo "" >> /tmp/download_section.md echo "*Last updated: $(date -u '+%Y-%m-%d %H:%M UTC')*" >> /tmp/download_section.md fi - name: Update README run: | # Create backup cp README.md README.md.backup # Find the download section in README if grep -q "## 📦 Latest Packages" README.md; then # Replace existing download section awk '/^## 📦 Latest Packages/{exit} {print}' README.md > README.md.tmp cat README.md.tmp /tmp/download_section.md > README.md rm README.md.tmp else # Add download section after the first section awk '/^## 🚀 Quick Start/{print; print ""; system("cat /tmp/download_section.md"); next} {print}' README.md > README.md.tmp mv README.md.tmp README.md fi - name: Commit and push changes run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git add README.md git diff --quiet && git diff --staged --quiet || git commit -m "Update README with latest package download links [skip ci]" git push