53 lines
1.5 KiB
Bash
53 lines
1.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
APP_PLATFORM=$1
|
||
|
|
ENVIRONMENT=$2
|
||
|
|
APP_MODE=${3:-legacy}
|
||
|
|
|
||
|
|
APP_DIR="apps/mobile_app"
|
||
|
|
PUBSPEC="$APP_DIR/pubspec.yaml"
|
||
|
|
|
||
|
|
case "$ENVIRONMENT" in
|
||
|
|
"staging")
|
||
|
|
PUBSPEC_VERSION=$(grep '^version:' "$PUBSPEC" | sed -E 's/^version:[[:space:]]+//')
|
||
|
|
VERSION_NUMBER=${PUBSPEC_VERSION%+*}
|
||
|
|
ENV_BUILD_NUMBER=${PUBSPEC_VERSION#*+}
|
||
|
|
;;
|
||
|
|
"production")
|
||
|
|
VERSION_NUMBER=$(echo "$CM_TAG" | sed -E 's/^v?([0-9]+(\.[0-9]+)+)\([0-9]+\)$/\1/')
|
||
|
|
ENV_BUILD_NUMBER=$(echo "$CM_TAG" | sed -E 's/^v?[0-9]+(\.[0-9]+)+\(([0-9]+)\)$/\2/')
|
||
|
|
if [ -z "$VERSION_NUMBER" ] || [ -z "$ENV_BUILD_NUMBER" ]; then
|
||
|
|
echo "Tag inválido (esperado 1.0.0(N) o v1.0.0(N)): $CM_TAG"; exit 1
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "ENVIRONMENT inválido: $ENVIRONMENT (esperado staging o production)"; exit 1 ;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
cd "$APP_DIR"
|
||
|
|
|
||
|
|
COMMON_FLAGS=(
|
||
|
|
--release
|
||
|
|
--flavor "$ENVIRONMENT"
|
||
|
|
-t "lib/main_$ENVIRONMENT.dart"
|
||
|
|
--build-name="$VERSION_NUMBER"
|
||
|
|
--build-number="$ENV_BUILD_NUMBER"
|
||
|
|
--dart-define-from-file="config/$ENVIRONMENT.json"
|
||
|
|
--dart-define=APP_MODE="$APP_MODE"
|
||
|
|
)
|
||
|
|
|
||
|
|
case "$APP_PLATFORM" in
|
||
|
|
"android")
|
||
|
|
flutter build appbundle "${COMMON_FLAGS[@]}"
|
||
|
|
;;
|
||
|
|
"ios")
|
||
|
|
flutter build ipa \
|
||
|
|
"${COMMON_FLAGS[@]}" \
|
||
|
|
--export-options-plist=/Users/builder/export_options.plist
|
||
|
|
;;
|
||
|
|
*) echo "APP_PLATFORM inválido: $APP_PLATFORM (esperado android o ios)"; exit 1 ;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
echo "Build OK: $APP_PLATFORM / $ENVIRONMENT / mode=$APP_MODE (v$VERSION_NUMBER+$ENV_BUILD_NUMBER)"
|