Class: Fastlane::Actions::HumanableBuildNumberAction

Inherits:
Action
  • Object
show all
Defined in:
lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb

Class Method Summary collapse

Class Method Details

.authorsObject



49
50
51
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 49

def self.authors
  ["icyleaf <[email protected]>"]
end

.available_optionsObject



67
68
69
70
71
72
73
74
75
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 67

def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :update,
                                 env_name: 'HUMANABLE_UPDATE',
                                 description: 'Set the build number to xcode configuration file',
                                 default_value: false,
                                 is_string: false)
  ]
end

.descriptionObject



45
46
47
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 45

def self.description
  "Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android."
end

.detailsObject



63
64
65
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 63

def self.details
  "The default will using the datetime of git last commit, but else the datetime of build and formatted to yymmHHMM. "
end

.generate_build_number!Object



41
42
43
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 41

def self.generate_build_number!
  @build_number = Helper::HumanableBuildNumberHelper.cook_humanable
end

.generate_git_commit_number!Object



36
37
38
39
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 36

def self.generate_git_commit_number!
  git_last_commit_datetime = Actions.last_git_commit_formatted_with('%ci')
  @build_number = Helper::HumanableBuildNumberHelper.cook_humanable(git_last_commit_datetime)
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 77

def self.is_supported?(platform)
  true
end

.outputObject



53
54
55
56
57
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 53

def self.output
  [
    [SharedValues::HUMANABLE_BUILD_NUMBER.to_s, 'The humanable build number, like `yymmHHMM`']
  ]
end

.return_valueObject



59
60
61
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 59

def self.return_value
  'The humanable build number'
end

.run(params) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 8

def self.run(params)
  if GetBuildNumberRepositoryAction.is_git?
    generate_git_commit_number!
    UI.message 'humanable detect: git'
  else
    UI.message 'humanable detect: current datetime'
    generate_build_number!
  end

  UI.message "humanable build number: #{@build_number.green}"

  set_humanable_build_number! if params[:update]
  @build_number
end

.set_humanable_build_number!Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/fastlane/plugin/humanable_build_number/actions/humanable_build_number_action.rb', line 23

def self.set_humanable_build_number!
  unless Helper::HumanableBuildNumberHelper.ios_project?
    UI.important "Can not set build number for android project"
    UI.important Helper::HumanableBuildNumberHelper.set_build_number_for_android_tips
    return
  end

  UI.message 'set build number to xcode project'
  require 'fastlane/actions/increment_build_number'
  require 'fastlane/helper/sh_helper'
  Fastlane::Actions::IncrementBuildNumberAction.run(build_number: @build_number)
end