name: Build CI

on:
  # Triggers the workflow on any pull request and push to develop
  push:
    branches: [ develop ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

env:
  # Make the git branch for a PR available to our Fastfile
  MX_GIT_BRANCH: ${{ github.event.pull_request.head.ref }}

jobs:
  build:
    name: Build
    runs-on: macos-15
    
    # Concurrency group not needed as this workflow only runs on develop which we always want to test.

    steps:
      - uses: actions/checkout@v4
        with:
            submodules: 'true'

      # Common cache
      # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job
      - uses: actions/cache@v4
        with:
          path: Pods
          key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
          restore-keys: |
            ${{ runner.os }}-pods-
      - uses: actions/cache@v4
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
          restore-keys: |
            ${{ runner.os }}-gems-

      # Make sure we use the latest version of MatrixSDK
      - name: Reset MatrixSDK pod
        run: rm -rf Pods/MatrixSDK

      # Common setup
      # Note: GH actions do not support yaml anchor yet. We need to duplicate this for every job
      - name: Brew bundle
        run: brew bundle
      - name: Bundle install
        run: |
          bundle config path vendor/bundle
          bundle install --jobs 4 --retry 3

      # Main step
      - name: Build iOS simulator
        run: bundle exec fastlane build
