Class: Fastlane::Actions::DetermineReleaseFromCommitsAction

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

Constant Summary collapse

VALID_PLATFORMS =
%w{ios android}

Documentation collapse

Class Method Summary collapse

Class Method Details

.authorsObject



51
52
53
54
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 51

def self.authors
  # So no one will ever forget your contribution to fastlane :) You are awesome btw!
  ["cball"]
end

.available_optionsObject



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 30

def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :commit_ignore_scopes,
                                 env_name: "FL_DETERMINE_RELEASE_FROM_COMMITS_COMMIT_IGNORE_SCOPES",
                                 description: "What scopes from commits should be ignored?",
                                 type: String),
    FastlaneCore::ConfigItem.new(key: :tag_prefix,
                                 env_name: "FL_DETERMINE_RELEASE_FROM_COMMITS_TAG_PREFIX",
                                 description: "The tag prefix to use  (ex. ios/beta)",
                                 type: String)
  ]
end

.descriptionObject



22
23
24
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 22

def self.description
  "Determines if a release should happen based on conventional commits."
end

.detailsObject



26
27
28
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 26

def self.details
  "If using conventional commits, only continues to release if there are features / fixes."
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 56

def self.is_supported?(platform)
  [:ios, :android].include?(platform)
end

.return_valueObject



43
44
45
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 43

def self.return_value
  # If your method provides a return value, you can describe here what it does
end

.run(params) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/fastlane/plugin/react_native_release/actions/determine_release_from_commits.rb', line 8

def self.run(params)
  ignore_scopes = params[:commit_ignore_scopes]
  tag_prefix = params[:tag_prefix]
  is_releaseable = analyze_commits(match: "#{tag_prefix}*", ignore_scopes: ignore_scopes)
  next_version = lane_context[SharedValues::RELEASE_NEXT_VERSION]
  # next unless is_releaseable

  next_version
end