add #130
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
name: Deploy iOS | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- develop | |
jobs: | |
build: | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
env: | |
TZ: Asia/Tokyo | |
FLUTTER_VERSION: | |
FLUTTER_CHANNEL: | |
FLUTTER_HOME: | |
PRODUCE_USERNAME: yumnumm@icloud.com | |
SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA: false | |
FASTLANE_USER: yumnumm@icloud.com | |
MATCH_USERNAME: yumnumm@icloud.com | |
MATCH_GIT_URL: git@github.com:YumNumm/EQMonitor_secret.git | |
LANG: ja_JP.UTF-8 | |
steps: | |
# https://github.com/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
# Fetch all history for all tags and branches | |
fetch-depth: 0 | |
- name: Set up ssh | |
run: | | |
mkdir -p ~/.ssh | |
echo "${{ secrets.SSH_ID_ED25519 }}" | base64 -d > ~/.ssh/id_ed25519 | |
chmod 700 ~/.ssh/id_ed25519 | |
eval $(ssh-agent -s) | |
echo "Host github.com \n\tIdentityFile ~/.ssh/id_ed25519\n\tUser git\n\tIdentityiesOnly yes" >> ~/.ssh/config | |
ssh-keyscan -H github.com >> ~/.ssh/known_hosts | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Show Xcode version | |
run: xcodebuild -version | |
- name: Fetch flutter config | |
id: fvm-config-action | |
uses: kuhnroyal/flutter-fvm-config-action@v2 | |
# https://github.com/subosito/flutter-action | |
- name: Setup flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }} | |
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }} | |
cache: true | |
- name: Install Gems | |
working-directory: app/ios | |
run: | | |
gem install bundler | |
bundle install | |
- name: Install Brewfile dependencies | |
working-directory: app/ios | |
run: brew bundle | |
- name: Cache pubspec dependencies | |
uses: actions/cache@v2 | |
with: | |
path: | | |
${{ env.FLUTTER_HOME }}/.pub-cache | |
**/.packages | |
**/.flutter-plugins | |
**/.flutter-plugin-dependencies | |
**/.dart_tool/package_config.json | |
key: build-pubspec-${{ hashFiles('**/pubspec.lock') }} | |
restore-keys: | | |
build-pubspec- | |
- name: Setup melos | |
run: | | |
ln -s $FLUTTER_ROOT .fvm/flutter_sdk | |
dart pub global activate melos | |
- name: Resolve dependencies | |
run: melos bootstrap | |
- name: Run build_runner | |
run: | | |
echo '${{ secrets.ENV }}' | base64 -d > app/.env | |
melos generate | |
- name: Cache Pods | |
uses: actions/cache@v2 | |
with: | |
path: app/ios/Pods | |
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
- name: Install dependencies | |
working-directory: app/ios | |
run: pod install | |
- name: Set Firebase Configuration | |
run: echo '${{ secrets.FIREBASE_IOS }}' | base64 -d > app/ios/Runner/GoogleService-Info.plist | |
- name: Set App Store Connect Configuration | |
working-directory: app | |
env: | |
APP_STORE_CONNECT_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | |
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} | |
run: | | |
echo '${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }}' | base64 -d > ios/AuthKey_NGL2W4BQP6.p8 | |
- name: Build IPA | |
working-directory: app/ios | |
env: | |
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }} | |
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }} | |
APP_STORE_CONNECT_API_KEY_BASE64: ${{secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | |
PRODUCE_USERNAME: ${{ secrets.PRODUCE_USERNAME }} | |
SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA: false | |
APP_STORE_CONNECT_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | |
FASTLANE_USER: yumnumm@icloud.com | |
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} | |
MATCH_USERNAME: yumnumm@icloud.com | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD}} | |
MATCH_GIT_URL: git@github.com:YumNumm/EQMonitor_secret.git | |
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD }} | |
LANG: ja_JP.UTF-8 | |
run: bundle exec fastlane build | |
- name: Upload artifact ipa | |
uses: actions/upload-artifact@v4 | |
with: | |
path: app/ios/Runner.ipa | |
name: release-ios | |
deploy: | |
runs-on: macos-latest | |
needs: build | |
steps: | |
# https://github.com/actions/checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
# Fetch all history for all tags and branches | |
fetch-depth: 0 | |
- name: Download artifact ipa | |
uses: actions/download-artifact@v4 | |
with: | |
name: release-ios | |
path: app/ios/Runner.ipa | |
- name: Install Gems | |
working-directory: app/ios | |
run: | | |
gem install bundler | |
bundle install | |
- name: Install Brewfile dependencies | |
working-directory: app/ios | |
run: brew bundle | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest | |
- name: Show Xcode version | |
run: xcodebuild -version | |
- name: Set App Store Connect Configuration | |
working-directory: app | |
env: | |
APP_STORE_CONNECT_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | |
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }} | |
run: | | |
echo '${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }}' | base64 -d > ios/AuthKey_NGL2W4BQP6.p8 | |
- name: Upload | |
run: | | |
bundle exec fastlane upload | |
working-directory: app/ios |