36 lines
902 B
Bash
36 lines
902 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
mkdir -p /pkg/out
|
|
nfpm package --config /pkg/nfpm.yaml --packager deb --target /pkg/out/
|
|
echo "✓ built $(ls /pkg/out/*.deb)"
|
|
|
|
DEB=$(ls /pkg/out/*.deb | head -1)
|
|
FILENAME=$(basename "$DEB")
|
|
|
|
DISTRIBUTION="bookworm"
|
|
COMPONENT="main"
|
|
|
|
echo "↑ publishing ${FILENAME}..."
|
|
|
|
HTTP_CODE=$(curl -sSL \
|
|
-w "%{http_code}" \
|
|
-o /tmp/publish_response.txt \
|
|
-X PUT \
|
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
|
-H "Content-Type: application/octet-stream" \
|
|
--data-binary "@${DEB}" \
|
|
"${GITEA_URL}/api/packages/${GITEA_OWNER}/debian/pool/${DISTRIBUTION}/${COMPONENT}/upload")
|
|
|
|
cat /tmp/publish_response.txt
|
|
echo ""
|
|
|
|
if [[ "$HTTP_CODE" =~ ^2 ]]; then
|
|
echo "✓ published ${FILENAME} (HTTP ${HTTP_CODE})"
|
|
elif [[ "$HTTP_CODE" == "409" ]]; then
|
|
echo "⚠ ${FILENAME} already exists, skipping (HTTP 409)"
|
|
else
|
|
echo "✗ failed (HTTP ${HTTP_CODE})"
|
|
exit 1
|
|
fi
|