Method: Supply::Uploader#perform_upload_meta

Defined in:
supply/lib/supply/uploader.rb

#perform_upload_meta(version_codes, track_name) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'supply/lib/supply/uploader.rb', line 80

def perform_upload_meta(version_codes, track_name)
  if (!Supply.config[:skip_upload_metadata] || !Supply.config[:skip_upload_images] || !Supply.config[:skip_upload_changelogs] || !Supply.config[:skip_upload_screenshots]) && 
    # Use version code from config if version codes is empty and no nil or empty string
    version_codes = [Supply.config[:version_code]] if version_codes.empty?
    version_codes = version_codes.reject do |version_code|
      version_codes.to_s == ""
    end

    version_codes.each do |version_code|
      UI.user_error!("Could not find folder #{}") unless File.directory?()

      track, release = fetch_track_and_release!(track_name, version_code)
      UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
      UI.user_error!("Could not find release for version code '#{version_code}' to update changelog") unless release

      release_notes_queue = Queue.new
      upload_worker = create_meta_upload_worker
      upload_worker.batch_enqueue(
        # skip . or .. or hidden folders
        all_languages.reject { |lang| lang.start_with?('.') }.map { |lang| UploadJob.new(lang, version_code, release_notes_queue) }
      )
      upload_worker.start

      release_notes = Array.new(release_notes_queue.size) { release_notes_queue.pop } # Queue to Array
      upload_changelogs(release_notes, release, track, track_name) unless release_notes.empty?
    end
  end
end