fix(release): normalize wrapped release-id before asset upload
Teacup can wrap workflow outputs as %touch docker-compose.yml(string=...), which produced an
invalid releases/{id}/assets URL and a 404 in Upload release binaries.
Unwrap and validate release-id before building the API path.
This commit is contained in:
@@ -264,7 +264,18 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
release_api="${GITHUB_API_URL:-${GITHUB_SERVER_URL%/}/api/v1}/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets"
|
raw_release_id="$(printf '%s' "${RELEASE_ID:-}" | sed 's/^[[:space:]]\+//; s/[[:space:]]\+$//')"
|
||||||
|
if [[ "$raw_release_id" =~ ^%\!t\(string=(.*)\)$ ]]; then
|
||||||
|
raw_release_id="${BASH_REMATCH[1]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
release_id="$(printf '%s' "$raw_release_id" | sed 's/^[[:space:]]\+//; s/[[:space:]]\+$//')"
|
||||||
|
if ! [[ "$release_id" =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Invalid release id from publish step: '${RELEASE_ID}'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
release_api="${GITHUB_API_URL:-${GITHUB_SERVER_URL%/}/api/v1}/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets"
|
||||||
|
|
||||||
for asset in dist/*; do
|
for asset in dist/*; do
|
||||||
name="$(basename "$asset")"
|
name="$(basename "$asset")"
|
||||||
|
|||||||
Reference in New Issue
Block a user