From 92ffcb5e052f4bb652bd7c8158d316d42ef8f34f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo?= Date: Fri, 22 Jan 2021 16:30:52 -0300 Subject: [PATCH] build: create bump script --- bump | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 bump diff --git a/bump b/bump new file mode 100644 index 0000000..4ad9191 --- /dev/null +++ b/bump @@ -0,0 +1,81 @@ +#!/bin/bash + +PROJECT_NAME='dash-shaka-playback' +CDN_PATH="gh/clappr/dash-shaka-playback@latest/dist/$PROJECT_NAME.min.js" + +update_dependencies() { + echo 'updating dependencies' && + yarn install +} + +update_version() { + current_tag=$(git describe --abbrev=0 --tags master) && + echo 'bump from '$current_tag' to '$1 && + sed -i ".bkp" "s/\(version\":[ ]*\"\)$current_tag/\1$1/" package.json +} + +build() { + echo "building $PROJECT_NAME.js" && + yarn build && + echo "building $PROJECT_NAME.min.js" && + yarn release +} + +run_tests() { + yarn lint +} + +make_release_commit() { + git add package.json yarn.lock && + git commit -m 'chore(package): bump version' && + git tag -m "$1" $1 +} + +git_push() { + echo 'pushing to github' + git push origin master --tags +} + +npm_publish() { + npm publish +} + +purge_cdn_cache() { + echo 'purging cdn cache' + curl -q "http://purge.jsdelivr.net/$CDN_PATH" +} + +main() { + npm whoami + if (("$?" != "0")); then + echo "you are not logged into npm" + exit 1 + fi + update_dependencies && + update_version $1 && + build + if (("$?" != "0")); then + echo "something failed during dependency update, version update, or build" + exit 1 + fi + run_tests + if (("$?" == "0")); then + make_release_commit $1 && + git_push && + npm_publish && + purge_cdn_cache && + exit 0 + + echo "something failed" + exit 1 + else + echo "you broke the tests. fix it before bumping another version." + exit 1 + fi +} + +if [ "$1" != "" ]; then + main $1 +else + echo "Usage: bump [new_version]" +fi