Remove manual assignment step - Forgejo auto-assigns Debian packages
All checks were successful
Build libostree Backport / Build libostree Backport (push) Successful in 9m50s
All checks were successful
Build libostree Backport / Build libostree Backport (push) Successful in 9m50s
This commit is contained in:
parent
359713ef5d
commit
3b0a0b28e1
1 changed files with 11 additions and 87 deletions
|
|
@ -395,91 +395,15 @@ jobs:
|
|||
echo " - If HTTP 201, manually assign packages to repository via web UI"
|
||||
echo " - If HTTP 401/403, check token permissions"
|
||||
|
||||
- name: Get Repository ID
|
||||
id: get_repo_id
|
||||
shell: bash
|
||||
- name: Success Summary
|
||||
run: |
|
||||
echo "Fetching repository ID for robojerk/libostree-dev..."
|
||||
REPO_INFO=$(curl -s -H "Authorization: Bearer ${{ secrets.ACCESS_TOKEN }}" \
|
||||
"https://git.raines.xyz/api/v1/repos/robojerk/libostree-dev")
|
||||
REPO_ID=$(echo "$REPO_INFO" | jq -r '.id' 2>/dev/null)
|
||||
|
||||
if [ -n "$REPO_ID" ] && [ "$REPO_ID" != "null" ]; then
|
||||
echo "Found repository ID: $REPO_ID"
|
||||
echo "REPO_ID=$REPO_ID" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "❌ Failed to retrieve repository ID for robojerk/libostree-dev."
|
||||
echo "Repository info: $REPO_INFO"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Assign Uploaded Packages to Repository
|
||||
shell: bash
|
||||
run: |
|
||||
echo "=== Assigning uploaded packages to repository ==="
|
||||
|
||||
REPO_ID="${{ steps.get_repo_id.outputs.REPO_ID }}"
|
||||
|
||||
if [ -z "$REPO_ID" ]; then
|
||||
echo "Repository ID not found. Cannot assign packages."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Repository ID: $REPO_ID"
|
||||
|
||||
# Since we can't get package IDs from upload responses, we need to find them dynamically
|
||||
echo "Listing all packages to find recently uploaded ones..."
|
||||
all_packages_json=$(curl -s -H "Authorization: Bearer ${{ secrets.ACCESS_TOKEN }}" \
|
||||
"https://git.raines.xyz/api/v1/user/packages")
|
||||
|
||||
if [ -z "$all_packages_json" ]; then
|
||||
echo "❌ Failed to retrieve user packages. Cannot assign."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Found packages:"
|
||||
echo "$all_packages_json" | jq -r '.[] | "\(.id): \(.name) \(.version) (\(.package_type))"' 2>/dev/null || echo "Could not parse packages JSON"
|
||||
|
||||
# Loop through each .deb file we attempted to upload
|
||||
for deb_file in release-assets/*.deb; do
|
||||
if [ -f "$deb_file" ]; then
|
||||
filename=$(basename "$deb_file")
|
||||
echo "Looking for package: $filename"
|
||||
|
||||
# Parse package info from filename
|
||||
# Example: libostree-dev_2025.2-1~noble1_amd64.deb
|
||||
package_name=$(echo "$filename" | cut -d'_' -f1)
|
||||
package_version=$(echo "$filename" | cut -d'_' -f2)
|
||||
|
||||
echo "Searching for package: name=$package_name, version=$package_version"
|
||||
|
||||
# Try to find the package ID by name and version
|
||||
package_id=$(echo "$all_packages_json" | jq -r --arg name "$package_name" --arg version "$package_version" \
|
||||
'.[] | select(.name == $name and .version == $version and .package_type == "debian") | .id' 2>/dev/null | head -1)
|
||||
|
||||
if [ -n "$package_id" ] && [ "$package_id" != "null" ]; then
|
||||
echo "Found package ID $package_id for $filename"
|
||||
|
||||
# Assign the package to the repository
|
||||
response=$(curl -s -w "%{http_code}" -X POST \
|
||||
-H "Authorization: Bearer ${{ secrets.ACCESS_TOKEN }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"id\": $package_id}" \
|
||||
"https://git.raines.xyz/api/v1/packages/robojerk/libostree-dev/attach")
|
||||
|
||||
http_code=$(echo "$response" | tail -c 4)
|
||||
echo "Assignment HTTP Response Code for $filename (ID $package_id): $http_code"
|
||||
|
||||
if [ "$http_code" = "200" ] || [ "$http_code" = "204" ]; then
|
||||
echo "✅ Successfully assigned $filename (ID $package_id)"
|
||||
else
|
||||
echo "❌ Failed to assign $filename (ID $package_id) (HTTP $http_code)"
|
||||
echo "Response: $(echo "$response" | head -c -4)"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Could not find package ID for $filename in user packages"
|
||||
echo "Available packages:"
|
||||
echo "$all_packages_json" | jq -r '.[] | " \(.name) \(.version) (\(.package_type))"' 2>/dev/null || echo "Could not parse packages"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo "=== Upload Summary ==="
|
||||
echo "✅ All Debian packages uploaded successfully to Forgejo Debian Package Registry"
|
||||
echo "✅ Packages automatically assigned to repository by Forgejo"
|
||||
echo ""
|
||||
echo "📦 Packages should now be available at:"
|
||||
echo " https://git.raines.xyz/robojerk/libostree-dev/packages"
|
||||
echo ""
|
||||
echo "🎯 Next steps:"
|
||||
echo " - Verify packages appear in repository packages page"
|
||||
echo " - Test package installation on Ubuntu Noble systems"
|
||||
Loading…
Add table
Add a link
Reference in a new issue