-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update HyperTrack SDK iOS to 5.4.0 and Android to 7.4.0 (#25)
Add SDK update automation.
- Loading branch information
1 parent
963b01e
commit ba7f39d
Showing
8 changed files
with
302 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,181 @@ | ||
alias b := build | ||
alias c := clean | ||
alias d := docs | ||
alias gd := get-dependencies | ||
alias od := open-docs | ||
alias pt := push-tag | ||
alias r := release | ||
alias us := update-sdk | ||
alias usa := update-sdk-android | ||
alias usal := update-sdk-android-latest | ||
alias usi := update-sdk-ios | ||
alias usil := update-sdk-ios-latest | ||
alias usl := update-sdk-latest | ||
alias v := version | ||
|
||
# Source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string | ||
# \ are escaped | ||
SEMVER_REGEX := "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?" | ||
|
||
# MAKE SURE YOU HAVE | ||
# #!/usr/bin/env sh | ||
# set -e | ||
# AT THE TOP OF YOUR RECIPE | ||
_ask-confirm: | ||
@bash -c 'read confirmation; if [[ $confirmation != "y" && $confirmation != "Y" ]]; then echo "Okay 😮💨 😅"; exit 1; fi' | ||
|
||
build: get-dependencies hooks | ||
|
||
clean: _clear-node-modules | ||
rm package-lock.json | ||
|
||
_clear-node-modules: | ||
rm -rf node_modules | ||
|
||
docs: hooks | ||
# no doc generation for cordova for now | ||
|
||
get-dependencies: | ||
# no dependencies for cordova plugin | ||
|
||
hooks: | ||
chmod +x .githooks/pre-push | ||
git config core.hooksPath .githooks | ||
|
||
release: hooks | ||
npm publish --dry-run | ||
@echo "THIS IS DRY RUN. Check if everything is ok and then run 'npm publish'. Checklist:" | ||
@echo "\t- check the release steps in CONTRIBUTING" | ||
_latest-android: | ||
@curl -s https://s3-us-west-2.amazonaws.com/m2.hypertrack.com/com/hypertrack/sdk-android/maven-metadata-sdk-android.xml | grep latest | grep -o -E '{{SEMVER_REGEX}}' | head -n 1 | ||
|
||
_latest-ios: | ||
@curl -s https://cocoapods.org/pods/HyperTrack | grep -m 1 -o -E "HyperTrack <span>{{SEMVER_REGEX}}" | grep -o -E '{{SEMVER_REGEX}}' | head -n 1 | ||
|
||
open-docs: docs | ||
open docs/index.html | ||
|
||
push-tag: | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
if [ $(git symbolic-ref --short HEAD) = "master" ] ; then | ||
VERSION=$(just version) | ||
git tag $VERSION | ||
git push origin $VERSION | ||
else | ||
echo "You are not on main branch" | ||
fi | ||
release publish="dry-run": build | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
./.githooks/pre-push | ||
VERSION=$(just version) | ||
if [ {{publish}} = "publish" ]; then | ||
BRANCH=$(git branch --show-current) | ||
if [ $BRANCH != "master" ]; then | ||
echo "You must be on main branch to publish a new version (current branch: $BRANCH))" | ||
exit 1 | ||
fi | ||
echo "Are you sure you want to publish version $VERSION? (y/N)" | ||
just _ask-confirm | ||
npm publish | ||
open "https://www.npmjs.com/package/cordova-plugin-hypertrack-v3/v/$VERSION" | ||
open "https://github.com/hypertrack/cordova-plugin-hypertrack/releases/tag/$VERSION" | ||
else | ||
npm publish --dry-run | ||
fi | ||
setup: get-dependencies hooks | ||
|
||
_update-readme-android android_version: | ||
./scripts/update_file.sh README.md 'Android\%20SDK-.*-brightgreen.svg' 'Android%20SDK-{{android_version}}-brightgreen.svg' | ||
|
||
_update-readme-ios ios_version: | ||
./scripts/update_file.sh README.md 'iOS\%20SDK-.*-brightgreen.svg' 'iOS%20SDK-{{ios_version}}-brightgreen.svg' | ||
|
||
update-sdk-latest wrapper_version commit="true" branch="true": | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
LATEST_IOS=$(just _latest-ios) | ||
LATEST_ANDROID=$(just _latest-android) | ||
just update-sdk {{wrapper_version}} $LATEST_IOS $LATEST_ANDROID {{commit}} {{branch}} | ||
update-sdk-android-latest wrapper_version commit="true" branch="true": | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
LATEST_ANDROID=$(just _latest-android) | ||
just update-sdk-android {{wrapper_version}} $LATEST_ANDROID {{commit}} {{branch}} | ||
update-sdk-ios-latest wrapper_version commit="true" branch="true": | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
LATEST_IOS=$(just _latest-ios) | ||
just update-sdk-ios {{wrapper_version}} $LATEST_IOS {{commit}} {{branch}} | ||
update-sdk wrapper_version ios_version android_version commit="true" branch="true": build | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
if [ "{{branch}}" = "true" ] ; then | ||
git checkout -b update-sdk-ios-{{ios_version}}-android-{{android_version}} | ||
fi | ||
just version | ||
echo "New version is {{wrapper_version}}" | ||
just _update-wrapper-version-file {{wrapper_version}} | ||
./scripts/update_changelog.sh -w {{wrapper_version}} -i {{ios_version}} -a {{android_version}} | ||
echo "Updating HyperTrack SDK iOS to {{ios_version}}" | ||
just _update-sdk-ios-version-file {{ios_version}} | ||
just _update-readme-ios {{ios_version}} | ||
echo "Updating HyperTrack SDK Android to {{android_version}}" | ||
just _update-sdk-android-version-file {{android_version}} | ||
just _update-readme-android {{android_version}} | ||
just docs | ||
if [ "{{commit}}" = "true" ] ; then | ||
git add . | ||
git commit -m "Update HyperTrack SDK iOS to {{ios_version}} and Android to {{android_version}}" | ||
fi | ||
update-sdk-android wrapper_version android_version commit="true" branch="true": build | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
if [ "{{branch}}" = "true" ] ; then | ||
git checkout -b update-sdk-android-{{android_version}} | ||
fi | ||
just version | ||
echo "Updating HyperTrack SDK Android to {{android_version}} on {{wrapper_version}}" | ||
just _update-wrapper-version-file {{wrapper_version}} | ||
just _update-sdk-android-version-file {{android_version}} | ||
just _update-readme-android {{android_version}} | ||
./scripts/update_changelog.sh -w {{wrapper_version}} -a {{android_version}} | ||
just docs | ||
if [ "{{commit}}" = "true" ] ; then | ||
git add . | ||
git commit -m "Update HyperTrack SDK Android to {{android_version}}" | ||
fi | ||
update-sdk-ios wrapper_version ios_version commit="true" branch="true": build | ||
#!/usr/bin/env sh | ||
set -euo pipefail | ||
if [ "{{branch}}" = "true" ] ; then | ||
git checkout -b update-sdk-ios-{{ios_version}} | ||
fi | ||
just version | ||
echo "Updating HyperTrack SDK iOS to {{ios_version}} on {{wrapper_version}}" | ||
just _update-wrapper-version-file {{wrapper_version}} | ||
just _update-sdk-ios-version-file {{ios_version}} | ||
just _update-readme-ios {{ios_version}} | ||
./scripts/update_changelog.sh -w {{wrapper_version}} -i {{ios_version}} | ||
just docs | ||
if [ "{{commit}}" = "true" ] ; then | ||
git add . | ||
git commit -m "Update HyperTrack SDK iOS to {{ios_version}}" | ||
fi | ||
_update-sdk-android-version-file android_version: | ||
./scripts/update_file.sh src/android/HypertrackPlugin.gradle "HYPERTRACK_SDK_VERSION = '.*'" "HYPERTRACK_SDK_VERSION = '{{android_version}}'" | ||
|
||
_update-sdk-ios-version-file ios_version: | ||
./scripts/update_file.sh plugin.xml '\<pod name="HyperTrack" spec=".*"\/\>' '\<pod name="HyperTrack" spec="{{ios_version}}"\/\>' | ||
|
||
_update-wrapper-version-file wrapper_version: | ||
./scripts/update_file.sh package.json '"version": ".*"' '"version": "{{wrapper_version}}"' | ||
./scripts/update_file.sh plugin.xml 'version=".*"\>' 'version="{{wrapper_version}}">' | ||
|
||
version: | ||
@cat package.json | grep version | head -n 1 | grep -o -E '{{SEMVER_REGEX}}' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/bin/bash | ||
set -euo pipefail | ||
|
||
while [ "$#" -gt 0 ]; do | ||
case "$1" in | ||
-w) | ||
wrapper_version="$2" | ||
shift 2 | ||
;; | ||
-i) | ||
ios_version="$2" | ||
shift 2 | ||
;; | ||
-a) | ||
android_version="$2" | ||
shift 2 | ||
;; | ||
*) | ||
echo "Usage: $0 [-w wrapper_version] [-i ios_version] [-a android_version]" | ||
exit 1 | ||
;; | ||
esac | ||
done | ||
|
||
changelog_file="CHANGELOG.md" | ||
|
||
if [ ! -f "$changelog_file" ]; then | ||
echo "Error: $changelog_file not found." | ||
exit 1 | ||
fi | ||
|
||
if [ -z "$wrapper_version" ]; then | ||
echo "Error: wrapper_version is required." | ||
exit 1 | ||
fi | ||
|
||
date=$(date +%Y-%m-%d) | ||
|
||
$(echo "[$wrapper_version]: https://github.com/hypertrack/cordova-plugin-hypertrack/releases/tag/$wrapper_version" >>$changelog_file) | ||
|
||
sed -i '' -e "8 i\\ | ||
" $changelog_file | ||
sed -i '' -e "8 i\\ | ||
## [$wrapper_version] - $date" $changelog_file | ||
sed -i '' -e "9 i\\ | ||
" $changelog_file | ||
sed -i '' -e "10 i\\ | ||
### Changed" $changelog_file | ||
sed -i '' -e "11 i\\ | ||
" $changelog_file | ||
|
||
if [ -n "$android_version" ]; then | ||
sed -i '' -e "12 i\\ | ||
- Updated HyperTrack SDK Android to [$android_version](https://github.com/hypertrack/sdk-android/releases/tag/$android_version)" $changelog_file | ||
fi | ||
|
||
if [ -n "$ios_version" ]; then | ||
sed -i '' -e "12 i\\ | ||
- Updated HyperTrack SDK iOS to [$ios_version](https://github.com/hypertrack/sdk-ios/releases/tag/$ios_version)" $changelog_file | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/bash | ||
set -euo pipefail | ||
|
||
# Check if params are provided | ||
if [ $# -ne 3 ]; then | ||
echo "Usage: $0 <file> <source_text> <new_text>" | ||
exit 1 | ||
fi | ||
|
||
file="$1" | ||
source_text="$2" | ||
new_text="$3" | ||
|
||
if [ ! -f "$file" ]; then | ||
echo "Error: $file not found." | ||
exit 1 | ||
fi | ||
|
||
cat $file | sed "s/$source_text/$new_text/" >tmp | ||
cat tmp >$file | ||
rm -f tmp | ||
|
||
echo "Updated $source_text in $file to $new_text" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters