Last active
July 10, 2020 17:30
-
-
Save mcarbonneaux/b230eb1d9e7cf9f1d22ab1eae2a35802 to your computer and use it in GitHub Desktop.
To upload asset on github release from travis-ci build
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if [ -f $1 ]; then | |
echo "Start try upload asset $1 to ${TRAVIS_PULL_REQUEST_SLUG} on tag: ${TRAVIS_TAG} at $(date)..." | |
ASSETTAGID=$(curl --no-progress-meter -q -u "${GITHUB_UPLOAD_USERNAME}:${GITHUB_UPLOAD_TOKEN}" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
https://api.github.com/repos/${TRAVIS_PULL_REQUEST_SLUG}/releases/tags/${TRAVIS_TAG} | awk '/"assets": /{flag=1}/"id": /{sub(",$","",$2);id=$2;}/"name": /{sub("^\"","",$2); sub("\",$","",$2);name=$2; if (name=="'"$1"'") {print id;exit}}') | |
ASSETURL=$(curl --no-progress-meter -q -u "${GITHUB_UPLOAD_USERNAME}:${GITHUB_UPLOAD_TOKEN}" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
https://api.github.com/repos/${TRAVIS_PULL_REQUEST_SLUG}/releases/tags/${TRAVIS_TAG} | awk '/"assets_url": /{sub("^\"","",$2); sub("\",$","",$2); sub("^https://api[.]","https://uploads.",$2);print $2;exit}') | |
if [ -z "${ASSETURL}" ]; then | |
curl --no-progress-meter -q -u "${GITHUB_UPLOAD_USERNAME}:${GITHUB_UPLOAD_TOKEN}" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
https://api.github.com/repos/${TRAVIS_PULL_REQUEST_SLUG}/releases/tags/${TRAVIS_TAG} | |
echo "Tag : ${TRAVIS_TAG} not found on project: ${TRAVIS_PULL_REQUEST_SLUG}..." | |
exit 2 | |
fi | |
if [ ! -z "$ASSETTAGID" ]; then | |
echo "Asset $1 are already uploaded on Tag: ${TRAVIS_TAG}!" | |
echo "I must Delete $1 before upload..." | |
curl -u "${GITHUB_UPLOAD_USERNAME}:${GITHUB_UPLOAD_TOKEN}" \ | |
-X DELETE \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
https://api.github.com/repos/${TRAVIS_PULL_REQUEST_SLUG}/releases/assets/${ASSETTAGID} | |
if [ $? -eq 0 ]; then echo "Delete done!" | |
else echo "Delete failed!"; exit 1; fi | |
fi | |
echo "Uploading asset $1 to ${TRAVIS_PULL_REQUEST_SLUG} on tag: ${TRAVIS_TAG}..." | |
curl --no-progress-meter -q -u "${GITHUB_UPLOAD_USERNAME}:${GITHUB_UPLOAD_TOKEN}" \ | |
-X POST \ | |
--data-binary @$1 \ | |
-H "Content-Type: application/zip" \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
$ASSETURL?name=$1 >response.json | |
if [ $? -eq 0 ]; then echo "Success upload of asset $1 to ${TRAVIS_PULL_REQUEST_SLUG} on tag: ${TRAVIS_TAG} at $(date)..."; | |
else cat response.json; echo "Failed upload of upload asset $1 to ${TRAVIS_PULL_REQUEST_SLUG} on tag: ${TRAVIS_TAG} at $(date)..."; fi | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
set
GITHUB_UPLOAD_USERNAME
andGITHUB_UPLOAD_TOKEN
in environement variable on travis settings of the project.and execute
bash travis2githubassetupload.sh "myfile.zip"