Class: Fastlane::Actions::GsExecuteReleaseLaneAction

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

Class Method Summary collapse

Class Method Details

.authorsObject



67
68
69
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 67

def self.authors
  ["Сергей Веселовский"]
end

.available_optionsObject



80
81
82
83
84
85
86
87
88
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 80

def self.available_options
  [
      FastlaneCore::ConfigItem.new(key: :alias,
                                   env_name: "ALIAS",
                                   description: "project system alias",
                                   optional: false,
                                   type: String)
  ]
end

.descriptionObject



63
64
65
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 63

def self.description
  "Plugin contains project flow code for code sharing between projects"
end

.detailsObject



75
76
77
78
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 75

def self.details
  # Optional:
  "Plugin contains project flow code for code sharing between GradoService projects"
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
93
94
95
96
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 90

def self.is_supported?(platform)
  # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
  # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
  #
  # [:ios, :mac, :android].include?(platform)
  true
end

.return_valueObject



71
72
73
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 71

def self.return_value
  # If your method provides a return value, you can describe here what it does
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
# File 'lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb', line 4

def self.run(params)
  require 'fastlane/plugin/gs_versioning'
  require 'fastlane/plugin/versioning'
  require 'fastlane/plugin/gs_deliver'

  # test = ENV["LIMITS_TRACKING"]

  # UI.important("test = " + test.to_s)
  # raise "error"

  s = Actions::GsGetAppStatusAction.run(FastlaneCore::Configuration.create(GsGetAppStatusAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
  UI.success("App Status = " + s)

  arg = FastlaneCore::Configuration.create(GsIncrementReleaseVersionAction.available_options, {path:Helper::GsProjectFlowIosHelper.get_versions_path})
  v = GsIncrementReleaseVersionAction.run(arg)
  version_name = v.major.to_s + "." + v.minor.to_s
  ruText = Helper::GsProjectFlowIosHelper.new.generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "Ru")
  enText = Helper::GsProjectFlowIosHelper.new.generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")
  # generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")

  Helper::FileHelper.write(Dir.pwd+'/metadata/ru/release_notes.txt', ruText)
  Helper::FileHelper.write(Dir.pwd+'/metadata/en-US/release_notes.txt', enText)

  if s == "Waiting For Review"
    Actions::DeliverAction.run(FastlaneCore::Configuration.create(DeliverAction.available_options,{
        force:true,
        app_version: version_name,
        skip_binary_upload:true,
        skip_screenshots: true,
        #skip_metadata: true,
        automatic_release:true,
        submission_information: {
            add_id_info_limits_tracking: ENV["LIMITS_TRACKING"], #в данном приложении, а также в любом связанном с ним стороннем сервисе используется проверка рекламного идентификатора и применяются пользовательские настройки ограничения трекинга рекламы в iOS.
            add_id_info_serves_ads: ENV["IS_ADS_IN_APP_IDFA"],  #Размещение рекламы в приложении
            add_id_info_tracks_action: ENV["TRACKS_USER_ACTIONS_IDFA"],  # определения связи между действиями пользователя внутри приложения и ранее размещенной рекламой.
            add_id_info_tracks_install: ENV["TRACKS_INSTALL_IDFA"],  # определения связи между установкой приложения и ранее размещенной рекламой;
            add_id_info_uses_idfa: ENV["USES_IDFA"],  #В приложении используется рекламный идентификатор (IDFA)?
            content_rights_has_rights: true,
            content_rights_contains_third_party_content: false,
            export_compliance_platform: 'ios',
            export_compliance_compliance_required: false,
            export_compliance_encryption_updated: false,
            export_compliance_app_type: nil,
            export_compliance_uses_encryption: ENV["USES_ENCRYPTION"],
            export_compliance_is_exempt: false,
            export_compliance_contains_third_party_cryptography: false,
            export_compliance_contains_proprietary_cryptography: false,
            export_compliance_available_on_french_store: true
        }}))
    UI.success("✅ Automatic release is set. App will be released in store after AppReview")
  elsif s == "Pending Developer Release"
    Actions::GsMoveToReadyForSaleAction.run(FastlaneCore::Configuration.create(GsMoveToReadyForSaleAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
    UI.success("✅ App is released to store")
  else
    raise "App has got unexpected status. Expected statuses: waitingForReview or PendingDeveloperRelease. Current status: "+s
  end
  Actions::GsSaveReleaseVersionAction.run(FastlaneCore::Configuration.create(GsSaveReleaseVersionAction.available_options,{version:v, path:Helper::GsProjectFlowIosHelper.get_versions_path}))
end