fastlane-plugin-gs_project_flow_ios 0.2.16 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06456ed3e755f79580d9499adc77c7067d6f165a
4
- data.tar.gz: 7bb440ac4dfc094cf4f695e85be4caa4a2dcc045
3
+ metadata.gz: 5b4419a926b588dc6229686c71f696f229421724
4
+ data.tar.gz: 2fd3e1e5a46c74b2f1c72cdc18dca7f621c030c1
5
5
  SHA512:
6
- metadata.gz: 1a267d017f2fad767e5bddc1e82b248edc9ce4467f2740f3ecb68c58fc63d183b0b8bb11f557dca8f773983120361e1e762dcd36b76006c1be35e6a1758d98c9
7
- data.tar.gz: 0f9510a47f4d6cf1e156b8e334edd111722dd6f9f4f857009aa336960d4e0e514a4f8df952c9ac42f49b0f3f5d8e0a657ef1fbb9fea4c5a41d3fff7b4ddde989
6
+ metadata.gz: c7cb036dedea46ea92df89a30b9e511ba62c93819ba244f60bbd4c50cabc86eea34348e8eca7f6985ca438430106ad1acd5726f4498adb68dc8e6f829ce2418f
7
+ data.tar.gz: b29122a76ee3ffaa051c52addca79152acef35fc7ae6be305bb26d06df0178934246cf8c978a1cba996d75d2049dae6c1b0ca45926d400384f8b896308532726
@@ -0,0 +1,82 @@
1
+ module Fastlane
2
+ module Actions
3
+ class GsBeforeAllAction < Action
4
+ def self.run(params)
5
+ action = 'cocoapods'
6
+ parameters = {:use_bundle_exec => false}
7
+
8
+ Fastlane::Helper::GsProjectFlowIosHelper.new.execute_action(action,parameters)
9
+
10
+
11
+ version_name, v = Helper::GsProjectFlowIosHelper.version_for_lane(param[:lane])
12
+ message = ENV["PROJECT_NAME"] + " " + version_name + "<pre> build successful.</pre>"
13
+ Helper::GsProjectFlowIosHelper.send_report(message,Helper::GsProjectFlowIosHelper::BuildState::SUCCESS,param[:lane])
14
+ cmd = ""
15
+ options = {}
16
+ if param[:lane] == :beta
17
+ cmd = "beta"
18
+ options = {cmd:cmd,
19
+ displayVersionName:version_name,
20
+ request: "cmd",
21
+ alias: ENV["ALIAS"]
22
+ }
23
+ elsif param[:lane] == :rc
24
+ cmd = "mv2rc"
25
+ options = {
26
+ cmd:cmd,
27
+ displayVersionName:version_name,
28
+ build_number:v.build,
29
+ request: "cmd",
30
+ alias: ENV["ALIAS"]
31
+ }
32
+ elsif param[:lane] == :release
33
+ cmd = "rc2release"
34
+ options = {cmd:cmd,
35
+ displayVersionName:version_name,
36
+ build_number:v.build,
37
+ request: "cmd",
38
+ alias: ENV["ALIAS"]
39
+ }
40
+
41
+ end
42
+ if cmd != ""
43
+ Actions::GsExecuteCommandAction.run(FastlaneCore::Configuration.create(GsStartExternalTestingAction.available_options,options))
44
+ end
45
+ end
46
+
47
+ def self.description
48
+ "Plugin contains project flow code for code sharing between projects"
49
+ end
50
+
51
+ def self.authors
52
+ ["Сергей Веселовский"]
53
+ end
54
+
55
+ def self.return_value
56
+ # If your method provides a return value, you can describe here what it does
57
+ end
58
+
59
+ def self.details
60
+ # Optional:
61
+ "Plugin contains project flow code for code sharing between GradoService projects"
62
+ end
63
+
64
+ def self.available_options
65
+ [
66
+ FastlaneCore::ConfigItem.new(key: :lane,
67
+ description: "A description of your option",
68
+ optional: false,
69
+ type: Symbol)
70
+ ]
71
+ end
72
+
73
+ def self.is_supported?(platform)
74
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
75
+ # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
76
+ #
77
+ # [:ios, :mac, :android].include?(platform)
78
+ true
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,46 @@
1
+ module Fastlane
2
+ module Actions
3
+ class GsErrorAction < Action
4
+ def self.run(params)
5
+ version_name, v = Helper::GsProjectFlowIosHelper.version_for_lane(lane)
6
+ # ENV["PROJECT_NAME"] - переменка окружения, используемая в iOS, как читаемое название проекта + ключ в json файлике версий
7
+ message = ENV["PROJECT_NAME"] + " " + version_name + " build has failed. Reason:\n <code>" + exception.message + "</code>"
8
+ Helper::GsProjectFlowIosHelper.send_report(message,Helper::GsProjectFlowIosHelper::BuildState::FAILURE, params[:lane])
9
+ end
10
+
11
+ def self.description
12
+ "Plugin contains project flow code for code sharing between projects"
13
+ end
14
+
15
+ def self.authors
16
+ ["Сергей Веселовский"]
17
+ end
18
+
19
+ def self.return_value
20
+ # If your method provides a return value, you can describe here what it does
21
+ end
22
+
23
+ def self.details
24
+ # Optional:
25
+ "Plugin contains project flow code for code sharing between GradoService projects"
26
+ end
27
+
28
+ def self.available_options
29
+ [
30
+ FastlaneCore::ConfigItem.new(key: :lane,
31
+ description: "A description of your option",
32
+ optional: false,
33
+ type: Symbol)
34
+ ]
35
+ end
36
+
37
+ def self.is_supported?(platform)
38
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
39
+ # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
40
+ #
41
+ # [:ios, :mac, :android].include?(platform)
42
+ true
43
+ end
44
+ end
45
+ end
46
+ end
@@ -37,15 +37,15 @@ module Fastlane
37
37
  sh Dir.pwd+"/DeleteDerrivedData.sh"
38
38
  end
39
39
 
40
- # gym(scheme: ENV["APP_SCHEME"],
41
- # export_method:"ad-hoc") # Build your app - more options available
42
- # crashlytics(notes: crashlytics_changelog,
43
- # groups: ENV["CRASHLYTICS_GROUPS"]
44
- # )
45
- # #
46
- # # sh "your_script.sh"
47
- # gs_save_beta_version(path:ENV["path_to_versions"], version: v)
48
- # UI.success("✅ App is released to Crashlytics")
40
+ Actions::GymAction.run(FastlaneCore::Configuration.create(GymAction.available_options,{scheme: ENV["APP_SCHEME"],
41
+ export_method:"ad-hoc"})) # Build your app - more options available
42
+
43
+ Actions::CrashlyticsAction.run(FastlaneCore::Configuration.create(GymAction.available_options,{notes: crashlytics_changelog,
44
+ groups: ENV["CRASHLYTICS_GROUPS"]}))
45
+
46
+
47
+ Actions::GsSaveBetaVersionAction.run(FastlaneCore::Configuration.create(GsSaveBetaVersionAction.available_options,{path:Helper::GsProjectFlowIosHelper.get_versions_path}))
48
+ UI.success("✅ App is released to Crashlytics")
49
49
  # # You can also use other beta testing services here (run fastlane actions)
50
50
  end
51
51
 
@@ -0,0 +1,45 @@
1
+ module Fastlane
2
+ module Actions
3
+ class GsExecuteExternalRunnerLaneAction < Action
4
+ def self.run(params)
5
+ require 'fastlane/plugin/gs_deliver'
6
+ Actions::GsStartExternalTestingAction.run(FastlaneCore::Configuration.create(GsStartExternalTestingAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
7
+ end
8
+
9
+ def self.description
10
+ "Plugin contains project flow code for code sharing between projects"
11
+ end
12
+
13
+ def self.authors
14
+ ["Сергей Веселовский"]
15
+ end
16
+
17
+ def self.return_value
18
+ # If your method provides a return value, you can describe here what it does
19
+ end
20
+
21
+ def self.details
22
+ # Optional:
23
+ "Plugin contains project flow code for code sharing between GradoService projects"
24
+ end
25
+
26
+ def self.available_options
27
+ [
28
+ # FastlaneCore::ConfigItem.new(key: :your_option,
29
+ # env_name: "GS_PROJECT_FLOW_IOS_YOUR_OPTION",
30
+ # description: "A description of your option",
31
+ # optional: false,
32
+ # type: String)
33
+ ]
34
+ end
35
+
36
+ def self.is_supported?(platform)
37
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
38
+ # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
39
+ #
40
+ # [:ios, :mac, :android].include?(platform)
41
+ true
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,166 @@
1
+ module Fastlane
2
+ module Actions
3
+ class GsExecuteRcLaneAction < Action
4
+ def self.run(params)
5
+ require 'fastlane/plugin/gs_versioning'
6
+ require 'fastlane/plugin/versioning'
7
+
8
+ fastlaneHelper = Fastlane::Helper::GsProjectFlowIosHelper.new
9
+ arg = FastlaneCore::Configuration.create(GsIncrementRcVersionAction.available_options, {path:Helper::GsProjectFlowIosHelper.get_versions_path})
10
+ v = GsIncrementRcVersionAction.run(arg)
11
+ version_name = v.major.to_s + "." + v.minor.to_s + "." + v.build.to_s
12
+ UI.message('version' + version_name)
13
+
14
+ Actions::SetInfoPlistValueAction.run(FastlaneCore::Configuration.create(SetInfoPlistValueAction.available_options,{path: plist_path, key: "ITSAppUsesNonExemptEncryption", value: "false"}))
15
+
16
+ Actions::IncrementBuildNumberInPlistAction.run(FastlaneCore::Configuration.create(Actions::IncrementBuildNumberInPlistAction.available_options,
17
+ {xcodeproj:ENV["xcodeproj"], target:ENV["target"], build_number: v.build.to_s}))
18
+
19
+ Actions::IncrementVersionNumberInPlistAction.run(FastlaneCore::Configuration.create(Actions::IncrementVersionNumberInPlistAction.available_options,
20
+ {version_number: v.major.to_s + "." + v.minor.to_s + ".0", xcodeproj: ENV["xcodeproj"], target: ENV["target"]}))
21
+
22
+ ruText = fastlaneHelper.generateReleaseNotes("fileClosed", params[:alias], version_name, "Ru")
23
+ enText = fastlaneHelper.generateReleaseNotes("fileClosed", params[:alias], version_name, "En")
24
+
25
+ # ruText = FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_Ru.txt")
26
+ # enText = FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_En.txt")
27
+ testflight_changelog = ruText + "\n\n" + enText
28
+ UI.message("changelog = " + testflight_changelog)
29
+
30
+ appDescription = Helper::FileHelper.read (Dir.pwd + "/metadata/ru/description.txt")
31
+
32
+
33
+
34
+ options = {changelog: testflight_changelog,
35
+ beta_app_description:appDescription,
36
+ distribute_external: false,
37
+ beta_app_feedback_email: "cimobdaemon@gmail.com"}
38
+
39
+ Dir.chdir ".." do
40
+ sh "chmod 744 ./DeleteDerrivedData.sh"
41
+ sh Dir.pwd+"/DeleteDerrivedData.sh"
42
+ end
43
+ Actions::GymAction.run(FastlaneCore::Configuration.create(GymAction.available_options,{scheme: ENV["APP_SCHEME"],
44
+ export_method:"app-store"})) # Build your app - more options available
45
+
46
+
47
+
48
+
49
+ s = Actions::GsGetAppStatusAction.run(FastlaneCore::Configuration.create(GsGetAppStatusAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
50
+ if s == "Pending Developer Release"
51
+ Actions::GsRejectLatestVersionAction.run(FastlaneCore::Configuration.create(GsRejectLatestVersionAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
52
+ end
53
+
54
+ Actions::PilotAction.run(FastlaneCore::Configuration.create(GsRejectLatestVersionAction.available_options,options))
55
+ UI.success("App is released to internal testing")
56
+
57
+ Actions::GsSaveRcVersionAction.run(FastlaneCore::Configuration.create(GsSaveRcVersionAction.available_options,{path:Helper::GsProjectFlowIosHelper.get_versions_path}))
58
+
59
+ Actions::GsExecuteRcLaneAction.moveToReview(version_name)
60
+ UI.success("✅ App status is changed to Waiting For Review")
61
+ options[:distribute_external] = true
62
+ options[:review_contact_info] = {
63
+ review_first_name: "MyTestAccount",
64
+ review_last_name: "MyTestAccount",
65
+ review_phone_number: "88432000555",
66
+ review_contact_email: "cimobdaemon@gmail.com",
67
+ }
68
+ begin
69
+ Actions::GsMoveRcToBetaReviewAction.run(FastlaneCore::Configuration.create(GsMoveRcToBetaReviewAction.available_options,
70
+ options))
71
+ UI.success("App is moved to beta review for external testing")
72
+ rescue Exception => e
73
+ UI.important(e.message)
74
+ end
75
+ end
76
+
77
+
78
+ def self.moveToReview(version)
79
+ s = Actions::GsGetAppStatusAction.run(FastlaneCore::Configuration.create(GsGetAppStatusAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
80
+ arg = FastlaneCore::Configuration.create(GsIncrementReleaseVersionAction.available_options, {path:Helper::GsProjectFlowIosHelper.get_versions_path})
81
+ v = GsIncrementReleaseVersionAction.run(arg)
82
+ # match(type: "appstore")
83
+ # snapshot
84
+ version_name = v.major.to_s + "." + v.minor.to_s
85
+
86
+ # generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "Ru")
87
+ # generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")
88
+
89
+ ruText = Helper::FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_Ru.txt")
90
+ enText = Helper::FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_En.txt")
91
+ Helper::FileHelper.write(Dir.pwd+'/metadata/ru/release_notes.txt', ruText)
92
+ Helper::FileHelper.write(Dir.pwd+'/metadata/en-US/release_notes.txt', enText)
93
+ # gym(scheme: ENV["APP_SCHEME"]) # Build your app - more options available
94
+ if s == "Waiting For Review" || s == "Pending Developer Release"
95
+ Actions::GsRejectLatestVersionAction.run(FastlaneCore::Configuration.create(GsRejectLatestVersionAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
96
+ end
97
+ Actions::DeliverAction.run(FastlaneCore::Configuration.create(DeliverAction.available_options,{force:true,
98
+ submit_for_review: true,
99
+ app_version: version,
100
+ skip_binary_upload:true,
101
+ automatic_release:false,
102
+ submission_information: {
103
+ add_id_info_limits_tracking: false,
104
+ add_id_info_serves_ads: false,
105
+ add_id_info_tracks_action: false,
106
+ add_id_info_tracks_install: false,
107
+ add_id_info_uses_idfa: false,
108
+ content_rights_has_rights: true,
109
+ content_rights_contains_third_party_content: false,
110
+ export_compliance_platform: 'ios',
111
+ export_compliance_compliance_required: false,
112
+ export_compliance_encryption_updated: false,
113
+ export_compliance_app_type: nil,
114
+ export_compliance_uses_encryption: false,
115
+ export_compliance_is_exempt: false,
116
+ export_compliance_contains_third_party_cryptography: false,
117
+ export_compliance_contains_proprietary_cryptography: false,
118
+ export_compliance_available_on_french_store: false
119
+ }}))
120
+ end
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+ def self.description
131
+ "Plugin contains project flow code for code sharing between projects"
132
+ end
133
+
134
+ def self.authors
135
+ ["Сергей Веселовский"]
136
+ end
137
+
138
+ def self.return_value
139
+ # If your method provides a return value, you can describe here what it does
140
+ end
141
+
142
+ def self.details
143
+ # Optional:
144
+ "Plugin contains project flow code for code sharing between GradoService projects"
145
+ end
146
+
147
+ def self.available_options
148
+ [
149
+ FastlaneCore::ConfigItem.new(key: :alias,
150
+ env_name: "ALIAS",
151
+ description: "project system alias",
152
+ optional: false,
153
+ type: String)
154
+ ]
155
+ end
156
+
157
+ def self.is_supported?(platform)
158
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
159
+ # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
160
+ #
161
+ # [:ios, :mac, :android].include?(platform)
162
+ true
163
+ end
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,142 @@
1
+ module Fastlane
2
+ module Actions
3
+ class GsExecuteReleaseLaneAction < Action
4
+ def self.run(params)
5
+ require 'fastlane/plugin/gs_versioning'
6
+ require 'fastlane/plugin/versioning'
7
+ require 'fastlane/plugin/gs_deliver'
8
+
9
+ s = Actions::GsGetAppStatusAction.run(FastlaneCore::Configuration.create(GsGetAppStatusAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
10
+ UI.success("App Status = " + s)
11
+
12
+ arg = FastlaneCore::Configuration.create(GsIncrementReleaseVersionAction.available_options, {path:Helper::GsProjectFlowIosHelper.get_versions_path})
13
+ v = GsIncrementReleaseVersionAction.run(arg)
14
+ version_name = v.major.to_s + "." + v.minor.to_s
15
+ ruText = Helper::GsProjectFlowIosHelper.new.generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "Ru")
16
+ enText = Helper::GsProjectFlowIosHelper.new.generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")
17
+ generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")
18
+
19
+ Helper::FileHelper.write(Dir.pwd+'/metadata/ru/release_notes.txt', ruText)
20
+ Helper::FileHelper.write(Dir.pwd+'/metadata/en-US/release_notes.txt', enText)
21
+
22
+ if s == "Waiting For Review"
23
+ Actions::DeliverAction.run(FastlaneCore::Configuration.create(DeliverAction.available_options,{
24
+ force:true,
25
+ app_version: version_name,
26
+ skip_binary_upload:true,
27
+ skip_screenshots: true,
28
+ #skip_metadata: true,
29
+ automatic_release:true,
30
+ submission_information: {
31
+ add_id_info_limits_tracking: false,
32
+ add_id_info_serves_ads: false,
33
+ add_id_info_tracks_action: false,
34
+ add_id_info_tracks_install: false,
35
+ add_id_info_uses_idfa: false,
36
+ content_rights_has_rights: true,
37
+ content_rights_contains_third_party_content: false,
38
+ export_compliance_platform: 'ios',
39
+ export_compliance_compliance_required: false,
40
+ export_compliance_encryption_updated: false,
41
+ export_compliance_app_type: nil,
42
+ export_compliance_uses_encryption: false,
43
+ export_compliance_is_exempt: false,
44
+ export_compliance_contains_third_party_cryptography: false,
45
+ export_compliance_contains_proprietary_cryptography: false,
46
+ export_compliance_available_on_french_store: false
47
+ }}))
48
+ UI.success("✅ Automatic release is set. App will be released in store after AppReview")
49
+ elsif s == "Pending Developer Release"
50
+ Actions::GsMoveToReadyForSaleAction.run(FastlaneCore::Configuration.create(GsMoveToReadyForSaleAction.available_options,{app_identifier:ENV["BUNDLE_ID"]}))
51
+ UI.success("✅ App is released to store")
52
+ else
53
+ raise "App has got unexpected status. Expected statuses: waitingForReview or PendingDeveloperRelease. Current status: "+s
54
+ end
55
+ Actions::GsSaveReleaseVersionAction.run(FastlaneCore::Configuration.create(GsSaveReleaseVersionAction.available_options,{path:Helper::GsProjectFlowIosHelper.get_versions_path}))
56
+
57
+
58
+ # s = gs_get_app_status(app_identifier:ENV["BUNDLE_ID"])
59
+ # UI.success("App Status = " + s)
60
+ # version_name = v.major.to_s + "." + v.minor.to_s
61
+
62
+ # generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "Ru")
63
+ # generateReleaseNotes("fileClosed", ENV["ALIAS"], version_name, "En")
64
+ # ruText = FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_Ru.txt")
65
+ # enText = FileHelper.read(Dir.pwd + "/../../../notes/" + ENV["ALIAS"] + "/" + version_name + "_En.txt")
66
+ # FileHelper.write(Dir.pwd+'/metadata/ru/release_notes.txt', ruText)
67
+ # FileHelper.write(Dir.pwd+'/metadata/en-US/release_notes.txt', enText)
68
+ # if s == "Waiting For Review"
69
+ # deliver(#submit_for_review: true,
70
+ # force:true,
71
+ # app_version: version_name,
72
+ # skip_binary_upload:true,
73
+ # skip_screenshots: true,
74
+ # #skip_metadata: true,
75
+ # automatic_release:true,
76
+ # submission_information: {
77
+ # add_id_info_limits_tracking: false,
78
+ # add_id_info_serves_ads: false,
79
+ # add_id_info_tracks_action: false,
80
+ # add_id_info_tracks_install: false,
81
+ # add_id_info_uses_idfa: false,
82
+ # content_rights_has_rights: true,
83
+ # content_rights_contains_third_party_content: false,
84
+ # export_compliance_platform: 'ios',
85
+ # export_compliance_compliance_required: false,
86
+ # export_compliance_encryption_updated: false,
87
+ # export_compliance_app_type: nil,
88
+ # export_compliance_uses_encryption: false,
89
+ # export_compliance_is_exempt: false,
90
+ # export_compliance_contains_third_party_cryptography: false,
91
+ # export_compliance_contains_proprietary_cryptography: false,
92
+ # export_compliance_available_on_french_store: false
93
+ # })
94
+ # UI.success("✅ Automatic release is set. App will be released in store after AppReview")
95
+ # elsif s == "Pending Developer Release"
96
+ # gs_move_to_ready_for_sale(app_identifier:ENV["BUNDLE_ID"])
97
+ # UI.success("✅ App is released to store")
98
+ # else
99
+ # raise "App has got unexpected status. Expected statuses: waitingForReview or PendingDeveloperRelease. Current status: "+s
100
+ # return
101
+ # end
102
+ # gs_save_release_version(path: ENV["path_to_versions"], version: v)
103
+
104
+ end
105
+
106
+ def self.description
107
+ "Plugin contains project flow code for code sharing between projects"
108
+ end
109
+
110
+ def self.authors
111
+ ["Сергей Веселовский"]
112
+ end
113
+
114
+ def self.return_value
115
+ # If your method provides a return value, you can describe here what it does
116
+ end
117
+
118
+ def self.details
119
+ # Optional:
120
+ "Plugin contains project flow code for code sharing between GradoService projects"
121
+ end
122
+
123
+ def self.available_options
124
+ [
125
+ FastlaneCore::ConfigItem.new(key: :alias,
126
+ env_name: "ALIAS",
127
+ description: "project system alias",
128
+ optional: false,
129
+ type: String)
130
+ ]
131
+ end
132
+
133
+ def self.is_supported?(platform)
134
+ # Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
135
+ # See: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
136
+ #
137
+ # [:ios, :mac, :android].include?(platform)
138
+ true
139
+ end
140
+ end
141
+ end
142
+ end
@@ -1,5 +1,25 @@
1
1
  module Fastlane
2
2
  module Helper
3
+
4
+ class FileHelper
5
+ def self.read(path)
6
+ file = File.open(path, "r+")
7
+ res = file.read
8
+ file.close
9
+ res
10
+ end
11
+ def self.write(path, str)
12
+ if not path.include? "."
13
+ raise "Filepath has incorrect format. You must provide file extension"
14
+ end
15
+ require 'fileutils.rb'
16
+ FileUtils.makedirs(File.dirname(path))
17
+ file = File.open(path, "w+")
18
+ file.write(str)
19
+ file.close
20
+ end
21
+ end
22
+
3
23
  class GsProjectFlowIosHelper
4
24
  # class methods that you define here become available in your action
5
25
  # as `Helper::GsProjectFlowIosHelper.your_method`
@@ -42,6 +62,56 @@ module Fastlane
42
62
  return text
43
63
  end
44
64
 
65
+ def self.version_for_lane(lane)
66
+ version_name = ""
67
+ if lane == :beta
68
+ v = Actions::GsGetBetaVersionAction.run(FastlaneCore::Configuration.create(Actions::GsGetBetaVersionAction.available_options,{path: GsProjectFlowIosHelper.get_versions_path}))
69
+ version_name = v.major.to_s+ "." + v.minor.to_s + "." + v.build.to_s
70
+ elsif lane == :rc
71
+ v = Actions::GsGetRcVersionAction.run(FastlaneCore::Configuration.create(Actions::GsGetRcVersionAction.available_options,{path: GsProjectFlowIosHelper.get_versions_path}))
72
+ # v = gs_get_rc_version(path: GsProjectFlowIosHelper.get_versions_path)
73
+ version_name = v.major.to_s+ "." + v.minor.to_s
74
+ elsif lane == :release
75
+ v = Actions::GsGetReleaseVersionAction.run(FastlaneCore::Configuration.create(Actions::GsGetReleaseVersionAction.available_options,{path: GsProjectFlowIosHelper.get_versions_path}))
76
+ # v = gs_get_release_version(path: GsProjectFlowIosHelper.get_versions_path)
77
+ version_name = v.major.to_s+ "." + v.minor.to_s
78
+ end
79
+ return version_name,v
80
+ end
81
+
82
+ module BuildState
83
+ START = "started"
84
+ SUCCESS = "successful"
85
+ FAILURE = "failed"
86
+ end
87
+ def self.send_report(message, buildState, lane)
88
+ Dir.chdir Dir.pwd+"/../../../../" do
89
+ UI.message(Dir.pwd)
90
+ params = Hash.new
91
+ params["state"] = buildState
92
+ params["alias"] = ENV["ALIAS"]
93
+
94
+ if buildState == BuildState::FAILURE
95
+ params["message"] = message
96
+ end
97
+
98
+ if lane == :beta
99
+ params["cmd"] = "beta"
100
+ elsif lane == :rc
101
+ params["cmd"] = "rc"
102
+ elsif lane == :release
103
+ params["cmd"] = "release"
104
+ end
105
+
106
+
107
+
108
+ paramsJSON = params.to_json
109
+ require 'json'
110
+ sh "curl -X POST -H \"Content-Type: application/json\" -d '#{paramsJSON}' http://mobile.geo4.io/bot/releaseBuilder/jobStates"
111
+ # sh "sh build_reporter.sh " + chat_id.to_s + " " + message
112
+ end
113
+ end
114
+
45
115
  def self.show_message
46
116
  UI.message("Hello from the gs_project_flow_ios plugin helper!")
47
117
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module GsProjectFlowIos
3
- VERSION = "0.2.16"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-gs_project_flow_ios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.16
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Сергей Веселовский
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-26 00:00:00.000000000 Z
11
+ date: 2017-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -100,8 +100,13 @@ executables: []
100
100
  extensions: []
101
101
  extra_rdoc_files: []
102
102
  files:
103
+ - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_after_all_action.rb
103
104
  - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_before_all_action.rb
105
+ - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_error_action.rb
104
106
  - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_beta_lane.rb
107
+ - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_external_runner_lane.rb
108
+ - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_rc_lane.rb
109
+ - lib/fastlane/plugin/gs_project_flow_ios/actions/gs_execute_release_lane.rb
105
110
  - lib/fastlane/plugin/gs_project_flow_ios/helper/gs_project_flow_ios_helper.rb
106
111
  - lib/fastlane/plugin/gs_project_flow_ios/version.rb
107
112
  - lib/fastlane/plugin/gs_project_flow_ios.rb