25 lines
1.3 KiB
Bash
Executable File
25 lines
1.3 KiB
Bash
Executable File
#!/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\":\"$INPUTS_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)
|
|
for artifact in $INPUTS_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=$INPUTS_RETENTION_DAYS&itemPath=$INPUTS_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=$INPUTS_NAME"
|
|
cat resp2.json
|
|
rm resp1.json resp2.json
|
|
done
|
|
rm resp0.json
|