2020-02-12 21:28:37 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
|
|
|
pushd bundle
|
|
|
|
|
|
|
|
# make sure we have a token set, api requests won't work otherwise
|
|
|
|
if [ -z "${GITHUB_TOKEN}" ]; then
|
|
|
|
echo "\${GITHUB_TOKEN} not set, publish failed"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
REQUIRED=(
|
|
|
|
"jq"
|
|
|
|
"curl"
|
|
|
|
)
|
|
|
|
for REQUIRE in "${REQUIRED[@]}"
|
|
|
|
do
|
|
|
|
command -v "${REQUIRE}" >/dev/null 2>&1 || echo >&2 "'${REQUIRE}' must be installed"
|
|
|
|
done
|
|
|
|
|
|
|
|
#see if the release already exists by tag
|
|
|
|
RELEASE_RESPONSE=`
|
|
|
|
curl \
|
|
|
|
--header "Authorization: token ${GITHUB_TOKEN}" \
|
|
|
|
"https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/releases/tags/${CIRCLE_TAG}"
|
|
|
|
`
|
|
|
|
RELEASE_ID=`echo "${RELEASE_RESPONSE}" | jq '.id'`
|
|
|
|
|
|
|
|
if [ "${RELEASE_ID}" = "null" ]; then
|
|
|
|
echo "creating release"
|
|
|
|
|
2021-06-15 18:58:59 +00:00
|
|
|
COND_CREATE_DISCUSSION=""
|
|
|
|
PRERELEASE=true
|
|
|
|
if [[ ${CIRCLE_TAG} =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
|
|
COND_CREATE_DISCUSSION="\"discussion_category_name\": \"announcement\","
|
|
|
|
PRERELEASE=false
|
|
|
|
fi
|
|
|
|
|
2020-02-12 21:28:37 +00:00
|
|
|
RELEASE_DATA="{
|
|
|
|
\"tag_name\": \"${CIRCLE_TAG}\",
|
|
|
|
\"target_commitish\": \"${CIRCLE_SHA1}\",
|
2021-06-15 18:58:59 +00:00
|
|
|
${COND_CREATE_DISCUSSION}
|
2020-02-12 21:28:37 +00:00
|
|
|
\"name\": \"${CIRCLE_TAG}\",
|
|
|
|
\"body\": \"\",
|
2021-06-15 18:58:59 +00:00
|
|
|
\"prerelease\": ${PRERELEASE}
|
2020-02-12 21:28:37 +00:00
|
|
|
}"
|
|
|
|
|
|
|
|
# create it if it doesn't exist yet
|
|
|
|
RELEASE_RESPONSE=`
|
|
|
|
curl \
|
|
|
|
--request POST \
|
|
|
|
--header "Authorization: token ${GITHUB_TOKEN}" \
|
|
|
|
--header "Content-Type: application/json" \
|
|
|
|
--data "${RELEASE_DATA}" \
|
|
|
|
"https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/${CIRCLE_PROJECT_REPONAME}/releases"
|
|
|
|
`
|
|
|
|
else
|
|
|
|
echo "release already exists"
|
|
|
|
fi
|
|
|
|
|
|
|
|
RELEASE_UPLOAD_URL=`echo "${RELEASE_RESPONSE}" | jq -r '.upload_url' | cut -d'{' -f1`
|
2021-05-14 04:22:00 +00:00
|
|
|
echo "Preparing to send artifacts to ${RELEASE_UPLOAD_URL}"
|
2020-02-12 21:28:37 +00:00
|
|
|
|
2021-05-14 04:22:00 +00:00
|
|
|
artifacts=(
|
2020-02-12 21:28:37 +00:00
|
|
|
"lotus_${CIRCLE_TAG}_linux-amd64.tar.gz"
|
|
|
|
"lotus_${CIRCLE_TAG}_linux-amd64.tar.gz.cid"
|
|
|
|
"lotus_${CIRCLE_TAG}_linux-amd64.tar.gz.sha512"
|
|
|
|
"lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz"
|
|
|
|
"lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz.cid"
|
|
|
|
"lotus_${CIRCLE_TAG}_darwin-amd64.tar.gz.sha512"
|
2021-06-15 18:58:59 +00:00
|
|
|
"Lotus-${CIRCLE_TAG}-x86_64.AppImage"
|
|
|
|
"Lotus-${CIRCLE_TAG}-x86_64.AppImage.cid"
|
|
|
|
"Lotus-${CIRCLE_TAG}-x86_64.AppImage.sha512"
|
2020-02-12 21:28:37 +00:00
|
|
|
)
|
2021-05-14 04:22:00 +00:00
|
|
|
|
|
|
|
for RELEASE_FILE in "${artifacts[@]}"
|
2020-02-12 21:28:37 +00:00
|
|
|
do
|
2021-05-14 04:22:00 +00:00
|
|
|
echo "Uploading ${RELEASE_FILE}..."
|
2020-02-12 21:28:37 +00:00
|
|
|
curl \
|
|
|
|
--request POST \
|
|
|
|
--header "Authorization: token ${GITHUB_TOKEN}" \
|
|
|
|
--header "Content-Type: application/octet-stream" \
|
|
|
|
--data-binary "@${RELEASE_FILE}" \
|
|
|
|
"$RELEASE_UPLOAD_URL?name=$(basename "${RELEASE_FILE}")"
|
|
|
|
|
2021-05-14 04:22:00 +00:00
|
|
|
echo "Uploaded ${RELEASE_FILE}"
|
2020-02-12 21:28:37 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
popd
|
|
|
|
|
|
|
|
miscellaneous=(
|
|
|
|
"README.md"
|
|
|
|
"LICENSE-MIT"
|
|
|
|
"LICENSE-APACHE"
|
|
|
|
)
|
|
|
|
for MISC in "${miscellaneous[@]}"
|
|
|
|
do
|
|
|
|
echo "Uploading release bundle: ${MISC}"
|
|
|
|
curl \
|
|
|
|
--request POST \
|
|
|
|
--header "Authorization: token ${GITHUB_TOKEN}" \
|
|
|
|
--header "Content-Type: application/octet-stream" \
|
|
|
|
--data-binary "@${MISC}" \
|
|
|
|
"$RELEASE_UPLOAD_URL?name=$(basename "${MISC}")"
|
|
|
|
|
|
|
|
echo "Release bundle uploaded: ${MISC}"
|
|
|
|
done
|