name: Export
inputs:
  app-store-key:
    description: App Store key in PEM PKCS#8 format
    required: true
  app-store-key-id:
    description: App Store key ID
    required: true
  app-store-key-issuer-id:
    description: App Store key issuer ID
    required: true
  archive-path:
    description: Xcode archive path
    required: true
  export-options:
    description: The export options in JSON format
    required: true
  export-path:
    description: The path to export the archive to
    required: true
runs:
  using: composite
  steps:
  - shell: bash
    working-directory: Apple
    run: |
      echo "${{ inputs.app-store-key }}" > AuthKey_${{ inputs.app-store-key-id }}.p8

      echo '${{ inputs.export-options }}' | plutil -convert xml1 -o ExportOptions.plist -

      xcodebuild \
        -exportArchive \
        -allowProvisioningUpdates \
        -allowProvisioningDeviceRegistration \
        -skipPackagePluginValidation \
        -skipMacroValidation \
        -onlyUsePackageVersionsFromResolvedFile \
        -authenticationKeyID ${{ inputs.app-store-key-id }} \
        -authenticationKeyIssuerID ${{ inputs.app-store-key-issuer-id }} \
        -authenticationKeyPath "${PWD}/AuthKey_${{ inputs.app-store-key-id }}.p8" \
        -archivePath '${{ inputs.archive-path }}' \
        -exportPath '${{ inputs.export-path }}' \
        -exportOptionsPlist ExportOptions.plist

      rm -rf AuthKey_${{ inputs.app-store-key-id }}.p8 ExportOptions.plist
