Class: Supply::Uploader
- Inherits:
-
Object
- Object
- Supply::Uploader
- Defined in:
- lib/supply/uploader.rb
Instance Method Summary collapse
- #perform_upload ⇒ Object
- #upload_binary ⇒ Object
- #upload_changelog(language, apk_version_code) ⇒ Object
- #upload_changelogs(language) ⇒ Object
- #upload_images(language) ⇒ Object
- #upload_metadata(language, listing) ⇒ Object
- #upload_screenshots(language) ⇒ Object
Instance Method Details
#perform_upload ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/supply/uploader.rb', line 3 def perform_upload FastlaneCore::PrintTable.print_values(config: Supply.config, hide_keys: [:issuer], title: "Summary for supply #{Supply::VERSION}") client.begin_edit(package_name: Supply.config[:package_name]) raise "No local metadata found, make sure to run `supply init` to setup supply".red unless || Supply.config[:apk] if UI.user_error!("Could not find folder #{metadata_path}") unless File.directory? Dir.foreach() do |language| next if language.start_with?('.') # e.g. . or .. or hidden folders listing = client.listing_for_language(language) (language, listing) unless Supply.config[:skip_upload_metadata] upload_images(language) unless Supply.config[:skip_upload_images] upload_screenshots(language) unless Supply.config[:skip_upload_screenshots] upload_changelogs(language) unless Supply.config[:skip_upload_metadata] end end upload_binary unless Supply.config[:skip_upload_apk] Helper.log.info "Uploading all changes to Google Play..." client.commit_current_edit! Helper.log.info "Successfully finished the upload to Google Play".green end |
#upload_binary ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/supply/uploader.rb', line 87 def upload_binary if Supply.config[:apk] Helper.log.info "Preparing apk at path '#{Supply.config[:apk]}' for upload..." apk_version_code = client.upload_apk(Supply.config[:apk]) Helper.log.info "Updating track '#{Supply.config[:track]}'..." if Supply.config[:track].eql? "rollout" client.update_track(Supply.config[:track], Supply.config[:rollout], apk_version_code) else client.update_track(Supply.config[:track], 1.0, apk_version_code) end if Dir.foreach() do |language| next if language.start_with?('.') # e.g. . or .. or hidden folders upload_changelog(language, apk_version_code) end end else Helper.log.info "No apk file found, you can pass the path to your apk using the `apk` option" end end |
#upload_changelog(language, apk_version_code) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/supply/uploader.rb', line 38 def upload_changelog(language, apk_version_code) path = File.join(, language, Supply::CHANGELOGS_FOLDER_NAME, "#{apk_version_code}.txt") if File.exist?(path) Helper.log.info "Updating changelog for code version '#{apk_version_code}' and language '#{language}'..." apk_listing = ApkListing.new(File.read(path), language, apk_version_code) client.update_apk_listing_for_language(apk_listing) end end |
#upload_changelogs(language) ⇒ Object
32 33 34 35 36 |
# File 'lib/supply/uploader.rb', line 32 def upload_changelogs(language) client.apks_version_codes.each do |apk_version_code| upload_changelog(language, apk_version_code) end end |
#upload_images(language) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/supply/uploader.rb', line 57 def upload_images(language) Supply::IMAGES_TYPES.each do |image_type| search = File.join(, language, Supply::IMAGES_FOLDER_NAME, image_type) + ".#{IMAGE_FILE_EXTENSIONS}" path = Dir.glob(search, File::FNM_CASEFOLD).last next unless path Helper.log.info "Uploading image file #{path}..." client.upload_image(image_path: File.(path), image_type: image_type, language: language) end end |
#upload_metadata(language, listing) ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/supply/uploader.rb', line 47 def (language, listing) Helper.log.info "Loading metadata for language '#{language}'..." Supply::AVAILABLE_METADATA_FIELDS.each do |key| path = File.join(, language, "#{key}.txt") listing.send("#{key}=".to_sym, File.read(path)) if File.exist?(path) end listing.save end |
#upload_screenshots(language) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/supply/uploader.rb', line 70 def upload_screenshots(language) Supply::SCREENSHOT_TYPES.each do |screenshot_type| search = File.join(, language, Supply::IMAGES_FOLDER_NAME, screenshot_type, "*.#{IMAGE_FILE_EXTENSIONS}") paths = Dir.glob(search, File::FNM_CASEFOLD) next unless paths.count > 0 client.clear_screenshots(image_type: screenshot_type, language: language) paths.sort.each do |path| Helper.log.info "Uploading screenshot #{path}..." client.upload_image(image_path: File.(path), image_type: screenshot_type, language: language) end end end |