This commit is contained in:
ange 2025-02-01 14:30:51 +00:00
parent e5033a2db8
commit 6c06ed0d6f
Signed by: ange
GPG Key ID: 9E0C4157BB7BEB1D

View File

@ -1,24 +1,18 @@
#!/bin/bash -e
curl --fail -v -D /dev/stdout -o resp0.json --header "Authorization: Bearer $ACTIONS_RUNTIME_TOKEN" \
-X POST --data "{\"Type\":\"actions_storage\",\"Name\":\"$INPUT_NAME\"}" \
"$GITHUB_SERVER_URL/api/actions_pipeline/_apis/pipelines/workflows/$GITHUB_RUN_ID/artifacts?api-version=6.0-preview"
cat resp0.json
UPLOAD_URL=$(jq -r '.fileContainerResourceUrl' resp0.json)
API="$GITHUB_SERVER_URL/api/actions_pipeline/_apis/pipelines/workflows/$GITHUB_RUN_ID/artifacts?api-version=6.0-preview"
CURL=(curl -H "Authorization: Bearer $ACTIONS_RUNTIME_TOKEN")
UPLOAD_URL="$("${CURL[@]}" --data "{\"Type\":\"actions_storage\",\"Name\":\"$INPUT_NAME\"}" "$API" | jq -r '.fileContainerResourceUrl')"
for artifact in $INPUT_PATH; do
content_length=$(ls -l "$artifact" | awk '{print $5}')
md5=$(openssl md5 -binary "$artifact" | base64)
curl --fail -v -D /dev/stdout -o resp1.json --header "Authorization: Bearer $ACTIONS_RUNTIME_TOKEN" \
--header "x-actions-results-md5: $md5" \
--header "x-tfs-filelength: ${content_length}" \
--header "content-range: bytes 0-$((content_length-1))/${content_length}" \
-X PUT --data-binary "@$artifact" \
"${UPLOAD_URL}?retentionDays=$INPUT_RETENTION_DAYS&itemPath=$INPUT_NAME%2F$artifact"
cat resp1.json
curl --fail -v -D /dev/stdout -o resp2.json --header "Authorization: Bearer $ACTIONS_RUNTIME_TOKEN" \
-X PATCH \
"$GITHUB_SERVER_URL/api/actions_pipeline/_apis/pipelines/workflows/$GITHUB_RUN_ID/artifacts?api-version=6.0-preview&artifactName=$INPUT_NAME"
cat resp2.json
rm resp1.json resp2.json
content_length=$(stat -c '%s' "$artifact")
md5=$(openssl md5 -binary "$artifact" | base64)
"${CURL[@]}" -XPUT \
-H "x-actions-results-md5: $md5" \
-H "x-tfs-filelength: ${content_length}" \
-H "content-range: bytes 0-$((content_length-1))/${content_length}" \
--data-binary "@$artifact" \
"$UPLOAD_URL?retentionDays=$INPUT_RETENTION_DAYS&itemPath=$INPUT_NAME%2F$artifact"
"${CURL[@]}" -XPATCH \
"$API&artifactName=$INPUT_NAME"
done
rm resp0.json