Class: Fastlane::Actions::SetChangelogAction
- Inherits:
-
Fastlane::Action
- Object
- Fastlane::Action
- Fastlane::Actions::SetChangelogAction
- Defined in:
- lib/fastlane/actions/set_changelog.rb
Documentation collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .description ⇒ Object
- .details ⇒ Object
- .is_supported?(platform) ⇒ Boolean
Class Method Summary collapse
Methods inherited from Fastlane::Action
action_name, author, output, sh, step_text
Class Method Details
.authors ⇒ Object
102 103 104 |
# File 'lib/fastlane/actions/set_changelog.rb', line 102 def self. ["KrauseFx"] end |
.available_options ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/fastlane/actions/set_changelog.rb', line 76 def self. [ FastlaneCore::ConfigItem.new(key: :app_identifier, short_option: "-a", env_name: "FASTLANE_APP_IDENTIFIER", description: "The bundle identifier of your app", default_value: CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)), FastlaneCore::ConfigItem.new(key: :username, short_option: "-u", env_name: "FASTLANE_USERNAME", description: "Your Apple ID Username", default_value: ENV["DELIVER_USER"] || CredentialsManager::AppfileConfig.try_fetch_value(:apple_id), verify_block: Proc.new do |value| CredentialsManager::PasswordManager.shared_manager(value) end), FastlaneCore::ConfigItem.new(key: :version, env_name: "FL_SET_CHANGELOG_VERSION", description: "The version number to create/update", optional: true), FastlaneCore::ConfigItem.new(key: :changelog, env_name: "FL_SET_CHANGELOG_CHANGELOG", description: "Changelog text that should be uploaded to iTunes Connect", optional: true) ] end |
.description ⇒ Object
68 69 70 |
# File 'lib/fastlane/actions/set_changelog.rb', line 68 def self.description "Set the changelog for all languages on iTunes Connect" end |
.details ⇒ Object
72 73 74 |
# File 'lib/fastlane/actions/set_changelog.rb', line 72 def self.details "This is useful if you have only one changelog for all languages" end |
.is_supported?(platform) ⇒ Boolean
106 107 108 |
# File 'lib/fastlane/actions/set_changelog.rb', line 106 def self.is_supported?(platform) [:ios, :mac].include?platform end |
.run(params) ⇒ Object
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/fastlane/actions/set_changelog.rb', line 4 def self.run(params) require 'spaceship' Spaceship::Tunes.login(params[:username]) app = Spaceship::Application.find(params[:app_identifier]) version_number = params[:version] unless version_number # Automatically fetch the latest version Helper.log.info "Fetching the latest version for this app" if app.edit_version and app.edit_version.version version_number = app.edit_version.version else Helper.log.info "You have to specify a new version number: " version_number = STDIN.gets.strip end end Helper.log.info "Going to update version #{version_number}" changelog = params[:changelog] unless changelog path = "./fastlane/changelog.txt" Helper.log.info "Looking for changelog in '#{path}'..." if File.exists?path changelog = File.read(path) else Helper.log.error "Couldn't find changelog.txt" Helper.log.info "Please enter the changelog here:" changelog = STDIN.gets end end Helper.log.info "Going to update the changelog to:\n\n#{changelog}\n\n" if (v = app.edit_version) if v.version != version_number # Version is already there, make sure it matches the one we want to create Helper.log.info "Changing existing version number from '#{v.version}' to '#{version_number}'" v.version = version_number v.save! else Helper.log.info "Updating changelog for existing version #{v.version}" end else Helper.log.info "Creating the new version: #{version_number}" app.create_version!(version_number) app = Spaceship::Application.find(params[:app_identifier]) # Replace with .reload method once available v = app.edit_version end v.release_notes.languages.each do |lang| v.release_notes[lang] = changelog end Helper.log.info "Uploading changes to iTunes Connect..." v.save! Helper.log.info "👼 Successfully pushed the new changelog to #{v.url}".green end |