All checks were successful
GTK RPM Release / build-gtk-rpm-release (push) Successful in 3m22s
66 lines
1.7 KiB
Bash
Executable File
66 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${GITEA_SERVER_URL:?Missing GITEA_SERVER_URL}"
|
|
: "${GITEA_REPOSITORY_OWNER:?Missing GITEA_REPOSITORY_OWNER}"
|
|
: "${RELEASE_ASSETS_DIR:?Missing RELEASE_ASSETS_DIR}"
|
|
|
|
owner="${GITEA_REPOSITORY_OWNER}"
|
|
package_user="${RPM_PACKAGE_USERNAME:-${GITEA_REPOSITORY_OWNER}}"
|
|
token="${RPM_PACKAGE_TOKEN:-}"
|
|
group="${RPM_PACKAGE_GROUP:-}"
|
|
|
|
if [[ -z "$package_user" ]]; then
|
|
echo "Missing package upload username. Set repository or organization variable RPM_PACKAGE_USERNAME." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z "$token" ]]; then
|
|
echo "Missing package upload token. Set repository or organization secret RPM_PACKAGE_TOKEN." >&2
|
|
exit 1
|
|
fi
|
|
|
|
upload_url="${GITEA_SERVER_URL%/}/api/packages/${owner}/rpm"
|
|
if [[ -n "$group" ]]; then
|
|
upload_url="${upload_url}/${group}"
|
|
fi
|
|
upload_url="${upload_url}/upload"
|
|
|
|
shopt -s nullglob
|
|
found_rpm=0
|
|
for rpm in "$RELEASE_ASSETS_DIR"/*.rpm; do
|
|
case "$rpm" in
|
|
*.src.rpm)
|
|
continue
|
|
;;
|
|
esac
|
|
|
|
found_rpm=1
|
|
http_code="$(curl --silent --show-error \
|
|
--write-out '%{http_code}' \
|
|
--output /tmp/package-upload-response \
|
|
--user "${package_user}:${token}" \
|
|
--upload-file "$rpm" \
|
|
"$upload_url")"
|
|
|
|
case "$http_code" in
|
|
201)
|
|
echo "Uploaded $(basename "$rpm") to the RPM package registry."
|
|
;;
|
|
409)
|
|
echo "Package already exists for $(basename "$rpm"); skipping duplicate upload."
|
|
;;
|
|
*)
|
|
echo "Failed to upload $(basename "$rpm") to $upload_url (HTTP $http_code)." >&2
|
|
cat /tmp/package-upload-response >&2 || true
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shopt -u nullglob
|
|
|
|
if [[ "$found_rpm" -ne 1 ]]; then
|
|
echo "No binary RPM artifacts were found to upload." >&2
|
|
exit 1
|
|
fi
|