build: add failure for make scripts

This commit is contained in:
2025-06-24 10:51:59 +03:00
parent 761ddb4fb4
commit 981a1a7329

View File

@@ -206,21 +206,26 @@ openapi:
sign:
@VERSION="$$(cat version.txt)"; \
TMPF="$$(mktemp)"; \
KEY_FILE=~/.nextcloud/certificates/$(app_name).key; \
if [ ! -f "$$KEY_FILE" ]; then \
echo "\x1b[31m❌ Error: Private key not found at $$KEY_FILE\x1b[0m"; \
exit 1; \
fi; \
echo "\x1b[33mSigning version $${VERSION}\x1b[0m"; \
echo "\x1b[33mDownloading archive...\x1b[0m"; \
curl -L https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz -o $${TMPF}; \
curl -L https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz -o "$${TMPF}"; \
FILESIZE=$$(stat -f%z "$${TMPF}" 2>/dev/null || stat -c%s "$${TMPF}"); \
if [ "$${FILESIZE}" -lt 10240 ]; then \
echo "\x1b[31mError: Downloaded file is too small (<10KB, actual: $${FILESIZE} bytes)\x1b[0m"; \
rm -rf $${TMPF}; \
rm -rf "$${TMPF}"; \
exit 1; \
fi; \
echo "\x1b[33mSigning with key $(app_name).key\x1b[0m"; \
echo "\x1b[33mSigning with key $$KEY_FILE\x1b[0m"; \
echo; \
echo "\x1b[32mDownload URL:\x1b[0m https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz"; \
echo "\x1b[32mSignature:\x1b[0m"; \
openssl dgst -sha512 -sign ~/.nextcloud/certificates/$(app_name).key $${TMPF} | openssl base64; \
rm -rf $${TMPF}
openssl dgst -sha512 -sign "$$KEY_FILE" "$${TMPF}" | openssl base64; \
rm -rf "$${TMPF}"
.PHONY: release
release:
@@ -229,13 +234,19 @@ release:
printf "\x1b[33mNEXTCLOUD_API_TOKEN not set. Enter token: \x1b[0m"; \
read -r NEXTCLOUD_API_TOKEN; \
fi; \
if [ -n "$$NEXTCLOUD_API_TOKEN" ]; then \
echo "\x1b[32m✅ Using provided NEXTCLOUD_API_TOKEN"; \
if [ -z "$$NEXTCLOUD_API_TOKEN" ]; then \
echo "\x1b[31m❌ Error: NEXTCLOUD_API_TOKEN is missing\x1b[0m"; \
exit 1; \
else \
echo "\x1b[31m❌ Error: NEXTCLOUD_API_TOKEN is missing"; \
echo "\x1b[32m✅ Using provided NEXTCLOUD_API_TOKEN\x1b[0m"; \
fi; \
TMPF="$$(mktemp)"; \
DOWNLOAD_URL="https://github.com/$(repo_path)/releases/download/v$${VERSION}/$(app_name)-v$${VERSION}.tar.gz"; \
KEY_FILE=~/.nextcloud/certificates/$(app_name).key; \
if [ ! -f "$$KEY_FILE" ]; then \
echo "\x1b[31m❌ Error: Private key not found at $$KEY_FILE\x1b[0m"; \
exit 1; \
fi; \
echo "\x1b[33mDownloading archive for version $${VERSION}...\x1b[0m"; \
curl -L "$${DOWNLOAD_URL}" -o "$${TMPF}"; \
FILESIZE=$$(stat -f%z "$${TMPF}" 2>/dev/null || stat -c%s "$${TMPF}"); \
@@ -244,19 +255,27 @@ release:
rm -f "$${TMPF}"; \
exit 1; \
fi; \
echo "\x1b[33mSigning with key $(app_name).key\x1b[0m"; \
echo "\x1b[33mSigning with key $$KEY_FILE\x1b[0m"; \
echo; \
SIGNATURE="$$(openssl dgst -sha512 -sign ~/.nextcloud/certificates/$(app_name).key "$${TMPF}" | openssl base64 | tr -d '\n')"; \
SIGNATURE="$$(openssl dgst -sha512 -sign "$$KEY_FILE" "$${TMPF}" | openssl base64 | tr -d '\n')"; \
rm -f "$${TMPF}"; \
echo "\x1b[32mReleasing to Nextcloud App Store...\x1b[0m"; \
curl -X POST \
RESPONSE="$$(mktemp)"; \
HTTP_CODE=$$(curl -s -w "%{http_code}" -o "$${RESPONSE}" -X POST \
-H "Authorization: Token $$NEXTCLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"download\":\"$${DOWNLOAD_URL}\", \"signature\":\"$${SIGNATURE}\"}" \
https://apps.nextcloud.com/api/v1/apps/releases; \
if [ $$? -ne 0 ]; then \
echo "\x1b[31m❌ Error: Failed to release to Nextcloud App Store\x1b[0m"; \
exit 1; \
https://apps.nextcloud.com/api/v1/apps/releases); \
cat "$$RESPONSE"; echo; \
if [ "$$HTTP_CODE" = "400" ]; then \
echo "\x1b[31m❌ Error 400: Invalid data, app too large, signature/cert issue, or not registered\x1b[0m"; exit 1; \
elif [ "$$HTTP_CODE" = "401" ]; then \
echo "\x1b[31m❌ Error 401: Not authenticated\x1b[0m"; exit 1; \
elif [ "$$HTTP_CODE" = "403" ]; then \
echo "\x1b[31m❌ Error 403: Not authorized\x1b[0m"; exit 1; \
elif [ "$$HTTP_CODE" -ge 300 ]; then \
echo "\x1b[31m❌ Unexpected error (HTTP $$HTTP_CODE)\x1b[0m"; exit 1; \
fi; \
rm -f "$$RESPONSE"; \
echo "\x1b[32m🎉 Release successful!\x1b[0m";