name: release-mas

on:
  push:
    tags:
      - "v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+"
      - "v[0-9]+.[0-9]+.[0-9]+-mas.[0-9]+"

defaults:
  run:
    shell: bash

env:
  TERM: xterm

jobs:
  mac-app-store-preflight:
    runs-on: macos-15
    env:
      MACOS_NOTIFICATION_STATE_NO_SDK_CHECK: true
      MAS_PROFILE: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MAS_PROFILE }}
      MACOS_API_KEY_ID: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_KEY_ID }}
      MACOS_API_KEY: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_KEY }}
      MACOS_API_ISSUER_ID: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_MACOS_API_ISSUER_ID }}
      CSC_FOR_PULL_REQUEST: true
      CSC_KEY_PASSWORD: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_CSC_KEY_PASSWORD}}
      CSC_LINK: ${{ secrets.MM_DESKTOP_MAC_APP_STORE_CSC_LINK }}
    steps:
      - name: release/checkout-repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: release/setup-node
        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version-file: "package.json"
          cache: "npm"
          cache-dependency-path: package-lock.json
      - name: release/install-dependencies
        run: |
          brew install yq
          sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
          npm ci
      - name: release/copy-provisioning-profile
        run: echo $MAS_PROFILE | base64 -D > ./mas.provisionprofile
      - name: release/patch-version-number-for-MAS
        run: ./scripts/patch_mas_version.sh
      - name: release/test
        uses: ./.github/actions/test
      - name: release/package
        run: npm run package:mas
      - name: release/publish
        run: fastlane publish_test path:"$(find . -name \*.pkg -print -quit)"
