Skip to content

build: update android dev package ID and update CI #63

build: update android dev package ID and update CI

build: update android dev package ID and update CI #63

name: Release to Dev
on:
push:
branches:
- release_to_dev
jobs:
release-android-to-dev-firebase:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Firebase CLI
run: npm install -g firebase-tools
- name: Read Flutter SDK version
run: echo "FLUTTER_VERSION=$(jq -r '.flutterSdkVersion' .fvm/fvm_config.json)" >> $GITHUB_ENV
shell: bash
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: flutter pub get (dart_flutter_common)
run: cd packages/dart_flutter_common && flutter pub get
- name: flutter pub get (firebase_common)
run: cd packages/firebase_common && flutter pub get
- name: flutter pub get (mottai_flutter_app)
run: cd packages/mottai_flutter_app && flutter pub get
- name: Create dev-dart-define.json from GitHub secret
run: echo '${{ secrets.DEV_DART_DEFINE_JSON_STRING }}' > packages/mottai_flutter_app/dev-dart-define.json
- name: Create secret.properties
run: |
echo "googleMap.apiKey=${{ secrets.DEV_GOOGLE_MAP_API_KEY }}" > packages/mottai_flutter_app/android/secret.properties
- name: Create keystore.properties
run: |
echo '${{ secrets.KEYSTORE_PROPERTIES }}' > packages/mottai_flutter_app/android/keystore.properties
- name: Decode release.jks from GitHub secrets
run: echo "${{ secrets.RELEASE_JKS_BASE64_STRING }}" | base64 --decode > packages/mottai_flutter_app/android/app/release.jks
- name: flutter build appbundle
run: |
cd packages/mottai_flutter_app
flutter build appbundle --release \
--dart-define-from-file="dev-dart-define.json" \
-t "lib/main.dart" \
--build-name=$(grep 'version:' pubspec.yaml | cut -d ' ' -f 2 | cut -d '+' -f 1) \
--build-number=$GITHUB_RUN_NUMBER
- name: Get latest 10 commit messages
run: echo "LATEST_COMMIT_MESSAGES=$(git log -n 10 --pretty=format:'%s' | tr '\n' '; ')" >> $GITHUB_ENV
- name: Deploy to Firebase
env:
DEV_FIREBASE_SERVICE_ACCOUNT_KEY_BASE64: ${{ secrets.DEV_FIREBASE_SERVICE_ACCOUNT_KEY_BASE64 }}
run: |
echo $DEV_FIREBASE_SERVICE_ACCOUNT_KEY_BASE64 | base64 -d > /tmp/dev_firebase_service_account_key.json
export GOOGLE_APPLICATION_CREDENTIALS=/tmp/dev_firebase_service_account_key.json
firebase use dev
firebase appdistribution:distribute packages/mottai_flutter_app/build/app/outputs/bundle/release/app-release.aab \
--app ${{ secrets.DEV_FIREBASE_ANDROID_APP_ID }} \
--groups internal-testers \
--release-notes "${LATEST_COMMIT_MESSAGES}"
release-ios-to-dev-testflight:
runs-on: macOS-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Read Flutter SDK version
run: echo "FLUTTER_VERSION=$(jq -r '.flutterSdkVersion' .fvm/fvm_config.json)" >> $GITHUB_ENV
shell: bash
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: flutter pub get (dart_flutter_common)
run: cd packages/dart_flutter_common && flutter pub get
- name: flutter pub get (firebase_common)
run: cd packages/firebase_common && flutter pub get
- name: flutter pub get (mottai_flutter_app)
run: cd packages/mottai_flutter_app && flutter pub get
- name: Create dev-dart-define.json from GitHub secret
run: echo '${{ secrets.DEV_DART_DEFINE_JSON_STRING }}' > packages/mottai_flutter_app/dev-dart-define.json
- name: Prepare Xcode build settings
run: |
# dev-dart-define.json から各値を読み込む
cd packages/mottai_flutter_app
FLAVOR=$(jq -r '.flavor' dev-dart-define.json)
APP_NAME=$(jq -r '.appName' dev-dart-define.json)
APP_ID_SUFFIX=$(jq -r '.appIdSuffix' dev-dart-define.json)
# DartDefines.xcconfig ファイルに書き込む
echo "flavor = dev" > DartDefines.xcconfig
echo "appName = mottai_dev" >> DartDefines.xcconfig
echo "appIdSuffix = .dev" >> DartDefines.xcconfig
# このファイルを Xcode が参照できるように ios ディレクトリに移動する
mv DartDefines.xcconfig ios/
# ios/Flutter/Release.xcconfig ファイルに追記する
echo '#include "DartDefines.xcconfig"' >> ios/Flutter/Release.xcconfig
- name: Decode and install provisioning profile
run: |
echo ${{ secrets.DEV_APPLE_DISTRIBUTION_PROVISIONING_PROFILE_BASE64_STRING }} | base64 --decode > profile.mobileprovision
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp profile.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/
- name: Run import-codesign-certs
uses: Apple-Actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.DEV_APPLE_DISTRIBUTION_CERTIFICATE_P12_BASE64_STRING }}
p12-password: ${{ secrets.DEV_APPLE_DISTRIBUTION_CERTIFICATE_P12_PASSWORD }}
- name: Prepare Xcode build settings for Distribution
run: |
# 適切なプロビジョニングプロファイルの名前を指定する
echo "PROVISIONING_PROFILE_SPECIFIER = Mottai Flutter App Dev" >> DartDefines.xcconfig
# 手動署名を選択する
echo "CODE_SIGN_STYLE = Manual" >> DartDefines.xcconfig
- name: Create Environment.swift
run: |
echo "import Foundation" > packages/mottai_flutter_app/ios/Runner/Environment.swift
echo "struct Env {" >> packages/mottai_flutter_app/ios/Runner/Environment.swift
echo " static let googleMapApiKey = \"${{ secrets.DEV_GOOGLE_MAP_API_KEY }}\"" >> packages/mottai_flutter_app/ios/Runner/Environment.swift
echo "}" >> packages/mottai_flutter_app/ios/Runner/Environment.swift
- name: flutter build ipa
run: |
cd packages/mottai_flutter_app
flutter build ipa --release \
--dart-define-from-file="dev-dart-define.json" \
-t "lib/main.dart" \
--build-name=$(grep 'version:' pubspec.yaml | cut -d ' ' -f 2 | cut -d '+' -f 1) \
--build-number=$GITHUB_RUN_NUMBER \
--export-options-plist="ios/ExportOptions.plist"
- name: Detect ipa file path
run: |
cd packages/mottai_flutter_app
if [ ! -d "build/ios/ipa" ]; then
echo "build/ios/ipa directory does not exist."
exit 1
fi
IPA_PATH=$(find build/ios/ipa -type f -name '*.ipa')
if [ -z "$IPA_PATH" ]; then
echo "No .ipa file found."
exit 1
fi
echo "IPA_PATH=$IPA_PATH" >> $GITHUB_ENV
echo $IPA_PATH
- name: Save AuthKey_${DEV_IOS_API_KEY}.p8 file
run: |
cd packages/mottai_flutter_app
mkdir private_keys
echo "${{ secrets.DEV_IOS_AUTH_KEY }}" > private_keys/AuthKey_${{ secrets.DEV_IOS_API_KEY }}.p8
- name: Validate ipa
run: |
cd packages/mottai_flutter_app
xcrun altool --validate-app \
-f $IPA_PATH \
-t ios \
--apiKey ${{ secrets.DEV_IOS_API_KEY }} \
--apiIssuer ${{ secrets.DEV_IOS_API_ISSUER }} \
--private-key "./private_keys/AuthKey_${{ secrets.DEV_IOS_API_KEY }}.p8"
- name: Upload ipa to TestFlight
run: |
cd packages/mottai_flutter_app
xcrun altool --upload-app \
-f $IPA_PATH \
-t ios \
--apiKey ${{ secrets.DEV_IOS_API_KEY }} \
--apiIssuer ${{ secrets.DEV_IOS_API_ISSUER }} \
--private-key "./private_keys/AuthKey_${{ secrets.DEV_IOS_API_KEY }}.p8"