CI: build release JSON with jq --rawfile (avoid ARG_MAX on large bodies
All checks were successful
Forgejo Release Builder / release (push) Successful in 3m30s

Huge changelog strings passed as jq --arg exceeded Linux exec argument limit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
littlecodedragon 2026-05-09 21:28:58 +02:00
parent e89f342881
commit 7fab10c8ef

View file

@ -407,32 +407,36 @@ jobs:
fork_delta_label="Fork delta vs ${UPSTREAM_REPO}@${UPSTREAM_REF} (${UPSTREAM_BASE})" fork_delta_label="Fork delta vs ${UPSTREAM_REPO}@${UPSTREAM_REF} (${UPSTREAM_BASE})"
fi fi
release_body="$(printf '%s\n' \ release_body_file="$(mktemp)"
"#### What's Changed" \ {
"" \ printf '%s\n' \
"##### New" \ "#### What's Changed" \
"" \ "" \
"##### Improve" \ "##### New" \
"" \ "" \
"##### Fix" \ "##### Improve" \
"" \ "" \
"${commit_logs}" \ "##### Fix" \
"" \ "" \
"##### Based on" \ "${commit_logs}" \
"" \ "" \
"${fork_delta_label}" \ "##### Based on" \
"" \ "" \
"${full_changelog}" \ "${fork_delta_label}" \
"" \ "" \
"<!-->" \ "${full_changelog}" \
"> [!TIP]" \ "" \
">" \ "<!-->" \
"> ### If you are unsure which version to download then go with \`Komikku-universal.apk\`")" "> [!TIP]" \
">" \
"> ### If you are unsure which version to download then go with \`Komikku-universal.apk\`"
} > "${release_body_file}"
# Build JSON — body from file only (jq --arg body "$huge" hits ARG_MAX).
"${JQ_BIN}" -n \ "${JQ_BIN}" -n \
--arg tag "${VERSION_TAG}" \ --arg tag "${VERSION_TAG}" \
--arg title "Komikku ${VERSION_DISPLAY}" \ --arg title "Komikku ${VERSION_DISPLAY}" \
--arg body "${release_body}" \ --rawfile body "${release_body_file}" \
'{tag_name: $tag, name: $title, body: $body, draft: false, prerelease: false}' > "${payload_file}" '{tag_name: $tag, name: $title, body: $body, draft: false, prerelease: false}' > "${payload_file}"
tag_path_enc="$("${JQ_BIN}" -nr --arg t "${VERSION_TAG}" '$t|@uri')" tag_path_enc="$("${JQ_BIN}" -nr --arg t "${VERSION_TAG}" '$t|@uri')"