51 lines
1.1 KiB
Bash
51 lines
1.1 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
#
|
||
|
# Uploads one or more files to a github release
|
||
|
#
|
||
|
# Prerequisites
|
||
|
# 1) GITHUB_TOKEN defined in the environment
|
||
|
# 2) TAG defined in the environment
|
||
|
#
|
||
|
set -e
|
||
|
|
||
|
REPO_SLUG=solana-labs/solana
|
||
|
|
||
|
if [[ -z $1 ]]; then
|
||
|
echo No files specified
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ -z $GITHUB_TOKEN ]]; then
|
||
|
echo Error: GITHUB_TOKEN not defined
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ -n $BUILDKITE_TAG ]]; then
|
||
|
TAG=$BUILDKITE_TAG
|
||
|
elif [[ -n $TRIGGERED_BUILDKITE_TAG ]]; then
|
||
|
TAG=$TRIGGERED_BUILDKITE_TAG
|
||
|
fi
|
||
|
|
||
|
if [[ -z $TAG ]]; then
|
||
|
echo Error: TAG not defined
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
releaseId=$( \
|
||
|
curl -s "https://api.github.com/repos/$REPO_SLUG/releases/tags/$TAG" \
|
||
|
| grep -m 1 \"id\": \
|
||
|
| sed -ne 's/^[^0-9]*\([0-9]*\),$/\1/p' \
|
||
|
)
|
||
|
echo "Github release id for $TAG is $releaseId"
|
||
|
|
||
|
for file in "$@"; do
|
||
|
echo "--- Uploading $file to tag $TAG of $REPO_SLUG"
|
||
|
curl \
|
||
|
--data-binary @"$file" \
|
||
|
-H "Authorization: token $GITHUB_TOKEN" \
|
||
|
-H "Content-Type: application/octet-stream" \
|
||
|
"https://uploads.github.com/repos/$REPO_SLUG/releases/$releaseId/assets?name=$(basename "$file")"
|
||
|
echo
|
||
|
done
|
||
|
|