pilot/lib/pilot/build_manager.rb in fastlane-2.147.0 vs pilot/lib/pilot/build_manager.rb in fastlane-2.148.0

- old
+ new

@@ -152,19 +152,17 @@ # 5. Auto notify enabled with config[:notify_external_testers] update_beta_app_meta(options, build) return if config[:skip_submission] if options[:reject_build_waiting_for_review] - waiting_for_review_build = build.app.get_builds(filter: { "betaAppReviewSubmission.betaReviewState" => "WAITING_FOR_REVIEW" }, includes: "betaAppReviewSubmission,preReleaseVersion").first - unless waiting_for_review_build.nil? - UI.important("Another build is already in review. Going to remove that build and submit the new one.") - UI.important("Deleting beta app review submission for build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}") - waiting_for_review_build.beta_app_review_submission.delete! - UI.success("Deleted beta app review submission for previous build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}") - end + reject_build_waiting_for_review(build) end + if options[:expire_previous_builds] + expire_previous_builds(build) + end + if !build.ready_for_internal_testing? && options[:skip_waiting_for_build_processing] # Meta can be uploaded for a build still in processing # Returning before distribute if skip_waiting_for_build_processing # because can't distribute an app that is still processing return @@ -314,9 +312,27 @@ !options[:localized_app_info].nil? end def should_update_localized_build_information?(options) !options[:localized_build_info].nil? + end + + def reject_build_waiting_for_review(build) + waiting_for_review_build = build.app.get_builds(filter: { "betaAppReviewSubmission.betaReviewState" => "WAITING_FOR_REVIEW" }, includes: "betaAppReviewSubmission,preReleaseVersion").first + unless waiting_for_review_build.nil? + UI.important("Another build is already in review. Going to remove that build and submit the new one.") + UI.important("Deleting beta app review submission for build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}") + waiting_for_review_build.beta_app_review_submission.delete! + UI.success("Deleted beta app review submission for previous build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}") + end + end + + def expire_previous_builds(build) + builds_to_expire = build.app.get_builds.reject do |asc_build| + asc_build.id == build.id + end + + builds_to_expire.each(&:expire!) end # If itc_provider was explicitly specified, use it. # If there are multiple teams, infer the provider from the selected team name. # If there are fewer than two teams, don't infer the provider.