Skip to content

Instantly share code, notes, and snippets.

@Amakata
Created August 28, 2017 05:55
Show Gist options
  • Save Amakata/fa050e490e0be20af65e9efa45444377 to your computer and use it in GitHub Desktop.
Save Amakata/fa050e490e0be20af65e9efa45444377 to your computer and use it in GitHub Desktop.
CircleCIからGithubのReleaseにファイルをアップロードするスクリプト
#!/usr/bin/env bash
# 既にタグが存在していればそのURLを抽出
UPLOAD_URL=`curl -s -H "Authorization: token $GITHUB_ACCESS_TOKEN" https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/releases|jq "map(select(.tag_name == \"v$CIRCLE_BUILD_NUM\")) | .[].upload_url" | sed -e 's/{?name,label}/?name=/g' | sed -e 's/"//g'`
# タグが存在していなければ、新規タグを作成する
if [ -z ${UPLOAD_URL} ]; then
API_JSON=$(printf '{"tag_name": "v%s","target_commitish": "master","%s": "v%s","body": "Release of version %s","draft": true,"prerelease": false}' $CIRCLE_BUILD_NUM $CIRCLE_BRANCH $CIRCLE_BUILD_NUM $CIRCLE_BUILD_NUM)
echo $API_JSON
UPLOAD_URL=`curl -s -H "Authorization: token $GITHUB_ACCESS_TOKEN" --data "$API_JSON" https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/releases | jq '.upload_url' | sed -e 's/{?name,label}/?name=/g' | sed -e 's/"//g'`
fi
echo $UPLOAD_URL
curl -H "Authorization: token $GITHUB_ACCESS_TOKEN" \
-H "Accept: application/vnd.github.manifold-preview" \
-H "Content-Type: application/zip" \
--data-binary @$1 \
"$UPLOAD_URL$2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment