Class: Fastlane::Actions::IncrementVersionCodeAction
- Inherits:
-
Action
- Object
- Action
- Fastlane::Actions::IncrementVersionCodeAction
- Defined in:
- lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb
Class Method Summary collapse
- .authors ⇒ Object
- .available_options ⇒ Object
- .description ⇒ Object
- .is_supported?(platform) ⇒ Boolean
- .output ⇒ Object
- .run(params) ⇒ Object
Class Method Details
.authors ⇒ Object
74 75 76 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 74 def self. ["Jérémy TOUDIC"] end |
.available_options ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 78 def self. [ FastlaneCore::ConfigItem.new(key: :app_folder_name, env_name: "INCREMENTVERSIONCODE_APP_FOLDER_NAME", description: "The name of the application source folder in the Android project (default: app)", optional: true, type: String, default_value:"app"), FastlaneCore::ConfigItem.new(key: :version_code, env_name: "INCREMENTVERSIONCODE_VERSION_CODE", description: "Change to a specific version (optional)", optional: true, type: Integer, default_value: 0) ] end |
.description ⇒ Object
70 71 72 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 70 def self.description "Increment the version code of your android project." end |
.is_supported?(platform) ⇒ Boolean
101 102 103 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 101 def self.is_supported?(platform) [:android].include?(platform) end |
.output ⇒ Object
95 96 97 98 99 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 95 def self.output [ ['VERSION_CODE', 'The new version code of the project'] ] end |
.run(params) ⇒ Object
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 63 64 65 66 67 68 |
# File 'lib/fastlane/plugin/increment_version_code/actions/increment_version_code_action.rb', line 7 def self.run(params) app_folder_name ||= params[:app_folder_name] UI.("The get_version_code plugin is looking inside your project folder (#{app_folder_name})!") version_code = "0" new_version_code ||= params[:version_code] UI.("new version code = #{new_version_code}") temp_file = Tempfile.new('fastlaneIncrementVersionCode') foundVersionCode = "false" Dir.glob("**/#{app_folder_name}/build.gradle") do |path| UI.(" -> Found a build.gradle file at path: (#{path})!") begin temp_file = Tempfile.new('fastlaneIncrementVersionCode') File.open(path, 'r') do |file| file.each_line do |line| if line.include? "versionCode " and foundVersionCode=="false" versionComponents = line.strip.split(' ') version_code = versionComponents[1].tr("\"","") if new_version_code <= 0 new_version_code = version_code.to_i + 1 end if !!(version_code =~ /\A[-+]?[0-9]+\z/) line.replace line.sub(version_code, new_version_code.to_s) foundVersionCode = "true" end temp_file.puts line else temp_file.puts line end end if foundVersionCode=="true" break end file.close end temp_file.rewind temp_file.close FileUtils.mv(temp_file.path, path) temp_file.unlink ensure if foundVersionCode=="true" break end end end if version_code == "0" || new_version_code == "1" UI.user_error!("Impossible to find the version code in the current project folder #{app_folder_name} 😭") else # Store the version name in the shared hash Actions.lane_context["VERSION_CODE"]=new_version_code UI.success("☝️ Version code has been changed from #{version_code} to #{new_version_code}") end return new_version_code end |