53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 | |
| 
 | |
| 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 [[ -z $CI_TAG ]]; then
 | |
|   echo Error: CI_TAG not defined
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| # Force CI_REPO_SLUG since sometimes
 | |
| # BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG is not set correctly, causing the
 | |
| # artifact upload to fail
 | |
| CI_REPO_SLUG=solana-labs/solana
 | |
| #if [[ -z $CI_REPO_SLUG ]]; then
 | |
| #  echo Error: CI_REPO_SLUG not defined
 | |
| #  exit 1
 | |
| #fi
 | |
| 
 | |
| releaseId=$( \
 | |
|   curl -s "https://api.github.com/repos/$CI_REPO_SLUG/releases/tags/$CI_TAG" \
 | |
|   | grep -m 1 \"id\": \
 | |
|   | sed -ne 's/^[^0-9]*\([0-9]*\),$/\1/p' \
 | |
| )
 | |
| echo "Github release id for $CI_TAG is $releaseId"
 | |
| 
 | |
| for file in "$@"; do
 | |
|   echo "--- Uploading $file to tag $CI_TAG of $CI_REPO_SLUG"
 | |
|   curl \
 | |
|     --verbose \
 | |
|     --data-binary @"$file" \
 | |
|     -H "Authorization: token $GITHUB_TOKEN" \
 | |
|     -H "Content-Type: application/octet-stream" \
 | |
|     "https://uploads.github.com/repos/$CI_REPO_SLUG/releases/$releaseId/assets?name=$(basename "$file")"
 | |
|   echo
 | |
| done
 | |
| 
 |