default_platform(:ios)

platform :ios do

  lane :lint do
    swiftlint(
      mode: :lint,
      strict: true,
      raise_if_swiftlint_error: true
    )
  end

  lane :build do
    setup_ci if ENV['CI']

    match(type: 'appstore') if ENV['MATCH_PASSWORD']

    increment_build_number(
      xcodeproj: "Tivi.xcodeproj",
      build_number: ENV['TIVI_BUILD_NUMBER']
    ) if ENV['TIVI_BUILD_NUMBER']

    # If match hasn't been setup, skip all code signing and packaging
    skip_packaging = ENV['MATCH_PASSWORD'].nil?

    build_app(
      scheme: "Tivi",
      buildlog_path: "build/fastlane-buildlog",
      skip_package_ipa: skip_packaging,
      skip_codesigning: skip_packaging
    )
  end

  lane :uploadtestflight do
    app_store_connect_api_key(
      key_id: ENV['API_KEY_ID'],
      issuer_id: ENV['ISSUER_KEY_ID'],
      key_content: ENV['API_KEY_CONTENTS'],
      is_key_content_base64: true
    )

    upload_to_testflight
  end

  lane :production do
    build-app
    uploadtestflight
  end

end
