Merge pull request #26 from jgkamat/jay/automate-release
Implement simple release scriptpull/36/head
commit
8bb1f54519
@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
API_BASE="https://api.github.com"
|
||||||
|
UPLOAD_BASE="https://uploads.github.com"
|
||||||
|
# TODO, rename this to alphapapa/solarized-everything-css
|
||||||
|
OWNER="alphapapa"
|
||||||
|
# REPO="solarized-everything-css"
|
||||||
|
REPO="solarized-everything-css"
|
||||||
|
REPO_BASE="${OWNER}/${REPO}"
|
||||||
|
TARGET_ZIP_NAME="generated_files.zip"
|
||||||
|
|
||||||
|
# USAGE:
|
||||||
|
# ./release.sh [tag-name] [tag-message]
|
||||||
|
#
|
||||||
|
# To upload releases, please put a github token in the GH_TOKEN env var, or run with
|
||||||
|
# GH_TOKEN="<TOKEN>" ./release.sh hello "my message"
|
||||||
|
#
|
||||||
|
# For a unofficial release: ./release.sh
|
||||||
|
#
|
||||||
|
# Dependencies: curl, jq, and git
|
||||||
|
|
||||||
|
# Check depdencies
|
||||||
|
if ! command -v curl >/dev/null 2>&1 \
|
||||||
|
|| ! command -v jq >/dev/null 2>&1 \
|
||||||
|
|| ! command -v git >/dev/null 2>&1; then
|
||||||
|
echo "Please install curl, jq, and git to continue" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
GIT_COMMIT="$(git rev-parse HEAD)"
|
||||||
|
|
||||||
|
echo "Running make..."
|
||||||
|
echo
|
||||||
|
|
||||||
|
make
|
||||||
|
|
||||||
|
mkdir -p dist
|
||||||
|
cd dist
|
||||||
|
|
||||||
|
echo "zipping files..."
|
||||||
|
|
||||||
|
zip "$TARGET_ZIP_NAME" -r ../css/
|
||||||
|
|
||||||
|
if [ -z "${GH_TOKEN:-}" ]; then
|
||||||
|
echo "No GH_TOKEN provided, exiting"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if we have tag info
|
||||||
|
if [ -z "${1:-}" ]; then
|
||||||
|
echo
|
||||||
|
echo "Please provide a tag for this release" 2>&1
|
||||||
|
exit 1
|
||||||
|
elif [ -z "${2:-}" ]; then
|
||||||
|
echo
|
||||||
|
echo "Please provide a tag message this release" 2>&1
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
TAG="$1"
|
||||||
|
MESSAGE="$2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Creating release..."
|
||||||
|
echo
|
||||||
|
|
||||||
|
RELEASE_OBJECT="$(curl -X POST "$API_BASE/repos/$REPO_BASE/releases" \
|
||||||
|
-H "Authorization: token $GH_TOKEN" \
|
||||||
|
-d "{
|
||||||
|
\"tag_name\": \"$TAG\",
|
||||||
|
\"target_commitish\": \"$GIT_COMMIT\",
|
||||||
|
\"name\": \"$TAG\",
|
||||||
|
\"body\": \"$MESSAGE\",
|
||||||
|
\"draft\": true,
|
||||||
|
\"prerelease\": false
|
||||||
|
}")"
|
||||||
|
|
||||||
|
RELEASE_ID="$(echo "$RELEASE_OBJECT" | jq -r '.id')"
|
||||||
|
|
||||||
|
echo "Uploading release assets..."
|
||||||
|
|
||||||
|
curl -X POST "$UPLOAD_BASE/repos/$REPO_BASE/releases/$RELEASE_ID/assets?name=$TARGET_ZIP_NAME" \
|
||||||
|
-H "Authorization: token $GH_TOKEN" \
|
||||||
|
-H "Content-Type: application/zip" \
|
||||||
|
-d "@${TARGET_ZIP_NAME}" >/dev/null
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Release created successfuly!"
|
||||||
|
echo "Please verify and publish the draft."
|
Loading…
Reference in New Issue