#!/bin/bash set -e set -o pipefail if [[ -z "$GITHUB_TOKEN" ]]; then echo "Set the GITHUB_TOKEN env variable." exit 1 fi if [[ -z "$GITHUB_REPOSITORY" ]]; then echo "Set the GITHUB_REPOSITORY env variable." exit 1 fi URI=https://api.github.com API_VERSION=v3 API_HEADER="Accept: application/vnd.github.${API_VERSION}+json" AUTH_HEADER="Authorization: token ${GITHUB_TOKEN}" main(){ local files if [ "$#" -eq 0 ]; then echo "Must pass files to be uploaded..." exit 1 fi files=( "$@" ) # Validate the GitHub token. curl -o /dev/null -sSL -H "${AUTH_HEADER}" -H "${API_HEADER}" "${URI}/repos/${GITHUB_REPOSITORY}" || { echo "Error: Invalid repo, token or network issue!"; exit 1; } tag_response=$(curl -sSL -H "${AUTH_HEADER}" -H "${API_HEADER}" "${URI}/repos/${GITHUB_REPOSITORY}/releases/latest") tag_name=$(echo $tag_response | jq -e --raw-output .tag_name) tag_id=$(echo $tag_response | jq -e --raw-output .id) echo "Uploading files: ${files[@]}" echo "For tag name: ${tag_name} tag id: ${tag_id}" } main $@