mirror of
https://github.com/expo/turtle.git
synced 2026-11-14 19:12:55 -10:00
* add circleci jobs for turtle deployment * add checkout step * remove redundant npm scripts * remove docker:* and deploy:android npm scripts * improve docs and remove duplicated scripts
77 lines
2.1 KiB
Bash
Executable File
77 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eo pipefail
|
|
|
|
SCRIPT_NAME=`basename "$0"`
|
|
DEPLOY_ENDPOINT_URL="https://circleci.com/api/v1.1/project/github/expo/turtle-deploy/tree/master"
|
|
|
|
if [[ -z "$1" || -z "$2" ]]; then
|
|
echo "usage: ${bold}$SCRIPT_NAME PLATFORM ENVIRONMENT [FORCE]${normal}"
|
|
exit 1
|
|
fi
|
|
|
|
PLATFORM="$1"
|
|
ENVIRONMENT="$2"
|
|
|
|
if [[ "$3" = "--force" ]]; then
|
|
FORCE_DEPLOY="true"
|
|
fi
|
|
|
|
if [[ "$PLATFORM" != "android" && "$PLATFORM" != "ios" ]]; then
|
|
echo "unsupported PLATFORM passed: ${bold}$PLATFORM${normal}"
|
|
echo "valid values are: ${bold}android${normal}, ${bold}ios${normal}"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$ENVIRONMENT" != "staging" && "$ENVIRONMENT" != "production" ]]; then
|
|
echo "unsupported ENVIRONMENT passed: ${bold}$ENVIRONMENT${normal}"
|
|
echo "valid values are: ${bold}staging${normal}, ${bold}production${normal}"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -z "$CIRCLE_SHA1" ]]; then
|
|
TURTLE_COMMIT="$CIRCLE_SHA1"
|
|
elif [[ -z "$FORCE_DEPLOY" ]]; then
|
|
read -p "You're about to schedule a deploy, are you sure you want to deploy the current commit? (y/n) " -n 1 -r
|
|
echo # (optional) move to a new line
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "exiting..."
|
|
exit 0
|
|
else
|
|
TURTLE_COMMIT=`git log --pretty=format:%H -1`
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "$TURTLE_BOT_CIRCLE_API_USER_TOKEN" ]]; then
|
|
echo "Please set the TURTLE_BOT_CIRCLE_API_USER_TOKEN env variable."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ $FORCE_DEPLOY = "true" ]]; then
|
|
curl -X POST \
|
|
--header "Content-Type: application/json" \
|
|
-u $TURTLE_BOT_CIRCLE_API_USER_TOKEN: \
|
|
-d '
|
|
{
|
|
"build_parameters": {
|
|
"CIRCLE_JOB": "deploy_'$PLATFORM'",
|
|
"TURTLE_ENV": "'$ENVIRONMENT'",
|
|
"TURTLE_FORCE_DEPLOY": "true"
|
|
}
|
|
}' \
|
|
$DEPLOY_ENDPOINT_URL | jq -r .build_url
|
|
else
|
|
curl -X POST \
|
|
--header "Content-Type: application/json" \
|
|
-u $TURTLE_BOT_CIRCLE_API_USER_TOKEN: \
|
|
-d '
|
|
{
|
|
"build_parameters": {
|
|
"CIRCLE_JOB": "deploy_'$PLATFORM'",
|
|
"TURTLE_ENV": "'$ENVIRONMENT'",
|
|
"TURTLE_COMMIT": "'$TURTLE_COMMIT'"
|
|
}
|
|
}' \
|
|
$DEPLOY_ENDPOINT_URL | jq -r .build_url
|
|
fi
|