name: "iOS Stage"

on:
  push:
    branches: [ "qa" ]

jobs:
  build:
    runs-on: macos-26
    steps:
      - name: Use Node
        uses: actions/setup-node@v6
        with:
          node-version: 24
      - name: Clone repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0 # we need the git history for the build number
      - name: Set up Flutter
        uses: subosito/flutter-action@v2
        with:
          channel: stable
          flutter-version: 3.35.4

      - name: xcode version
        run: |
          sudo xcode-select -s /Applications/Xcode_26.2.app
          /usr/bin/xcodebuild -version

      - name: Install the Apple certificate and provisioning profile
        env:
          CERTIFICATE_P12: ${{ secrets.DISTRIBUTION_CERTIFICATE }}
          P12_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
          PROVISIONING_PROFILE: ${{ secrets.PROV_PROFILE_STAGE }}
        run: >-
          sh .github/workflows/scripts/ios_install_signing_files.sh 
          $CERTIFICATE_P12 
          $P12_PASSWORD 
          $PROVISIONING_PROFILE

      - name: Download dotenv
        env:
          DOTENV_FILE: ${{ secrets.DOTENV_DEVELOP }}
          FILE_NAME: .develop.env
        run: >-
          sh .github/workflows/scripts/all_download_dotenv.sh
          $DOTENV_FILE
          $FILE_NAME

      - name: Update build number
        run: |
          sh .github/workflows/scripts/ios_update_version_number.sh

      - name: Enabled SPM
        run: flutter config --enable-swift-package-manager

      - name: Flutterfire
        run: |
          sh .github/workflows/scripts/all_install_flutterfire.sh

      - name: pigeon
        run: |
          sh .github/workflows/scripts/all_run_pigeon.sh

      - name: Update Pods
        run: |
          gem install cocoapods

      - name: flutter build ipa
        env:
          FLAVOR: develop
        run: |
          sh .github/workflows/scripts/ios_build_ipa.sh $FLAVOR 

      - name: Archive
        env:
          SCHEME: Develop
        run: sh .github/workflows/scripts/ios_archive.sh $SCHEME

      - name: export
        env:
          EXPORT_OPTIONS_PATH: comwell_key_app/ios/ExportOptionsStage.plist
        run: sh .github/workflows/scripts/ios_export.sh EXPORT_OPTIONS_PATH

      - name: Validate & upload
        env:
          API_KEY: ${{ secrets.APP_STORE_API_KEY }}
          ISSUER_ID: ${{ secrets.APP_STORE_ISSUER_ID }}
          APP_STORE_KEY_ID: ${{ secrets.APP_STORE_KEY_ID }}
          IPA_PATH: "comwell_key_app/output/Comwell Phoenix.ipa"
        run: sh .github/workflows/scripts/ios_upload.sh $APP_STORE_KEY_ID $IPA_PATH $ISSUER_ID $API_KEY