diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index e0618e8..77d39e6 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -77,7 +77,10 @@ jobs: upload_file() { local file="$1" - local name=$(basename "$file") + local name + name=$(basename "$file") + local encoded_name + encoded_name=$(printf '%s' "$name" | sed 's/ /%20/g') local attempt=1 while [ $attempt -le $MAX_RETRIES ]; do @@ -86,7 +89,7 @@ jobs: -X POST \ -H "Authorization: token ${TOKEN}" \ -F "attachment=@${file}" \ - "${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=${name}") + "${GITEA_URL}/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=${encoded_name}") if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then echo "✅ Uploaded ${name}" @@ -103,9 +106,9 @@ jobs: } FAILED=0 - for file in $(find out/make -type f \( -name "*.exe" -o -name "*.zip" -o -name "*.deb" -o -name "*.rpm" \)); do + while IFS= read -r -d '' file; do upload_file "$file" || FAILED=1 - done + done < <(find out/make -type f \( -name "*.exe" -o -name "*.zip" -o -name "*.deb" -o -name "*.rpm" \) -print0) if [ $FAILED -eq 1 ]; then echo "Some uploads failed"