on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up ruby env
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.2.1
          bundler-cache: true

      - name: Install Flutter
        uses: subosito/flutter-action@v2
        with:
          channel: stable
          flutter-version: 3.22.0
          cache: true

      - name: Infer version number from git tag
        id: version
        env: 
          REF_NAME: ${{ github.ref_name }}
        run:
          # remove the 'v' prefix from the tag name
          echo "BUILD_NAME=${REF_NAME//v}" >> $GITHUB_ENV

      - name: Load secrets
        id: load-secrets
        uses: hashicorp/vault-action@v3
        with:
          url: https://api.hashicorp.com
          token: ${{ secrets.VAULT_TOKEN }}
          secrets: |
            secret/release GOOGLE_MAPS_API_KEY | GOOGLE_MAPS_API_KEY ;
            secret/release IOS_ASC_KEY_ID | IOS_ASC_KEY_ID ;
            secret/release IOS_ASC_ISSUER_ID | IOS_ASC_ISSUER_ID ;
            secret/release IOS_ASC_KEY_P8 | IOS_ASC_KEY_P8 ;

      - name: Install fastlane
        run: bundle install
        working-directory: ios

      - name: Run fastlane lane
        run: bundle exec fastlane deploy_release
        working-directory: ios
        env:
          BUILD_NUMBER: ${{ github.run_number }}
          # BUILD_NAME is implicitly available
          GOOGLE_MAPS_API_KEY: ${{ steps.load-secrets.outputs.GOOGLE_MAPS_API_KEY }}
          IOS_ASC_KEY_ID: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_KEY_ID }}
          IOS_ASC_ISSUER_ID: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_ISSUER_ID }}
          IOS_ASC_KEY_P8: ${{ GOOGLE_MAPS_API_KEY.IOS_ASC_KEY_P8 }}