fastlane-plugin-stream_actions 0.3.41 → 0.3.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fastlane/plugin/stream_actions/actions/git_status.rb +55 -0
- data/lib/fastlane/plugin/stream_actions/actions/pr_create.rb +65 -0
- data/lib/fastlane/plugin/stream_actions/actions/{show_frameworks_size.rb → show_sdk_size.rb} +10 -17
- data/lib/fastlane/plugin/stream_actions/actions/update_sdk_size_in_readme.rb +47 -0
- data/lib/fastlane/plugin/stream_actions/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 374b135474111aaf84a321bdb82a6f96105b7db75bbf2ac3793b588a61c42728
|
4
|
+
data.tar.gz: df090e406e1ba7d1c36b5ee8875faec2212808f3683a58f37fc4edb1f90cf2c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6feab6e28f7c8734a6361b94a9d90e38c44cde0b8526f3e2821491211472bea19b5cdadfa6a5321bb5cb716858675fa6bc67a54ebb986f738f441dca9b52e0f
|
7
|
+
data.tar.gz: f55efa6df99c473b300ceaf7dec15867cd2e457ddb5afbfe9caa9a92d173cf295fc80b623c1400a2bf09bc7343622bd7a8f111042f2dfeacc79508f35cfea0a4
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class GitStatusAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
UI.user_error!('Extension should be provided') unless params[:ext]
|
6
|
+
|
7
|
+
untracked_files = sh('git status -s', log: false).split("\n").map(&:strip)
|
8
|
+
UI.important("Git Status: #{untracked_files}")
|
9
|
+
|
10
|
+
deleted_files = select_files_from(files: untracked_files, with_extension: params[:ext], that_start_with: 'D')
|
11
|
+
added_files = select_files_from(files: untracked_files, with_extension: params[:ext], that_start_with: ['A', '??'])
|
12
|
+
renamed_files = select_files_from(files: untracked_files, with_extension: params[:ext], that_start_with: 'R')
|
13
|
+
modified_files = select_files_from(files: untracked_files, with_extension: params[:ext], that_start_with: 'M')
|
14
|
+
|
15
|
+
renamed_files.each do |renamed_file|
|
16
|
+
content = renamed_file.split.drop(1).join.split('->').map(&:strip)
|
17
|
+
deleted_files << content.first
|
18
|
+
added_files << content.last
|
19
|
+
end
|
20
|
+
{ a: added_files, d: deleted_files, m: modified_files }
|
21
|
+
end
|
22
|
+
|
23
|
+
def select_files_from(files:, with_extension:, that_start_with:)
|
24
|
+
files.select do |f|
|
25
|
+
f.start_with?(*that_start_with)
|
26
|
+
end.map do |f|
|
27
|
+
f.split.drop(1).join(' ')
|
28
|
+
end.select do |f|
|
29
|
+
f.gsub(/['"]/, '').end_with?(with_extension)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
#####################################################
|
34
|
+
# @!group Documentation
|
35
|
+
#####################################################
|
36
|
+
|
37
|
+
def self.description
|
38
|
+
'Git status'
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.available_options
|
42
|
+
[
|
43
|
+
FastlaneCore::ConfigItem.new(
|
44
|
+
key: :ext,
|
45
|
+
description: 'Extension'
|
46
|
+
)
|
47
|
+
]
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.is_supported?(platform)
|
51
|
+
true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class PrCreateAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
params[:base_branch] ||= 'develop'
|
6
|
+
sh("git checkout -b #{params[:head_branch]}")
|
7
|
+
sh('git restore Brewfile.lock.json || true')
|
8
|
+
sh('git add -A')
|
9
|
+
sh("git commit -m '#{params[:title]}'")
|
10
|
+
other_action.push_to_git_remote(tags: false)
|
11
|
+
|
12
|
+
other_action.create_pull_request(
|
13
|
+
api_token: ENV.fetch('GITHUB_TOKEN'),
|
14
|
+
repo: params[:github_repo],
|
15
|
+
title: params[:title],
|
16
|
+
head: params[:head_branch],
|
17
|
+
base: params[:base_branch],
|
18
|
+
body: 'This PR was created automatically by CI.'
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
#####################################################
|
23
|
+
# @!group Documentation
|
24
|
+
#####################################################
|
25
|
+
|
26
|
+
def self.description
|
27
|
+
'Create PR'
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.available_options
|
31
|
+
[
|
32
|
+
FastlaneCore::ConfigItem.new(
|
33
|
+
env_name: 'GITHUB_REPOSITORY',
|
34
|
+
key: :github_repo,
|
35
|
+
description: 'GitHub repo name',
|
36
|
+
verify_block: proc do |name|
|
37
|
+
UI.user_error!("GITHUB_REPOSITORY should not be empty") if name.to_s.empty?
|
38
|
+
end
|
39
|
+
),
|
40
|
+
FastlaneCore::ConfigItem.new(
|
41
|
+
key: :base_branch,
|
42
|
+
description: 'Base branch',
|
43
|
+
is_string: true
|
44
|
+
),
|
45
|
+
FastlaneCore::ConfigItem.new(
|
46
|
+
key: :head_branch,
|
47
|
+
description: 'Head branch',
|
48
|
+
is_string: true,
|
49
|
+
optional: false
|
50
|
+
),
|
51
|
+
FastlaneCore::ConfigItem.new(
|
52
|
+
key: :title,
|
53
|
+
description: 'Title',
|
54
|
+
is_string: true,
|
55
|
+
optional: false
|
56
|
+
)
|
57
|
+
]
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.is_supported?(platform)
|
61
|
+
true
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/fastlane/plugin/stream_actions/actions/{show_frameworks_size.rb → show_sdk_size.rb}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
|
-
class
|
3
|
+
class ShowSdkSizeAction < Action
|
4
4
|
def self.run(params)
|
5
5
|
warning_status = '🟡' # Warning if a branch is #{max_tolerance} less performant than the benchmark
|
6
6
|
fail_status = '🔴' # Failure if a branch is more than #{max_tolerance} less performant than the benchmark
|
@@ -18,13 +18,14 @@ module Fastlane
|
|
18
18
|
|
19
19
|
table_header = '## SDK Size'
|
20
20
|
markdown_table = "#{table_header}\n| `title` | `#{is_release ? 'previous release' : 'develop'}` | `#{is_release ? 'current release' : 'branch'}` | `diff` | `status` |\n| - | - | - | - | - |\n"
|
21
|
-
params[:
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
params[:branch_sizes].each do |sdk_name, branch_value_kb|
|
22
|
+
branch_value_mb = (branch_value_kb / 1024).round(2)
|
23
|
+
benchmark_value_kb = benchmark_sizes[sdk_name]
|
24
|
+
benchmark_value_mb = (benchmark_value_kb / 1024).round(2)
|
25
|
+
max_tolerance = 500 # Max Tolerance is 500KB
|
26
|
+
fine_tolerance = 250 # Fine Tolerance is 250KB
|
26
27
|
|
27
|
-
diff =
|
28
|
+
diff = branch_value_kb - benchmark_value_kb
|
28
29
|
|
29
30
|
status_emoji =
|
30
31
|
if diff < 0
|
@@ -37,7 +38,7 @@ module Fastlane
|
|
37
38
|
success_status
|
38
39
|
end
|
39
40
|
|
40
|
-
markdown_table << "|#{
|
41
|
+
markdown_table << "|#{sdk_name}|#{benchmark_value_mb}MB|#{branch_value_mb}MB|#{diff.round(2)}KB|#{status_emoji}|\n"
|
41
42
|
end
|
42
43
|
|
43
44
|
FastlaneCore::PrintTable.print_values(title: 'Benchmark', config: benchmark_sizes)
|
@@ -69,7 +70,7 @@ module Fastlane
|
|
69
70
|
#####################################################
|
70
71
|
|
71
72
|
def self.description
|
72
|
-
'Show
|
73
|
+
'Show SDKs size'
|
73
74
|
end
|
74
75
|
|
75
76
|
def self.available_options
|
@@ -82,14 +83,6 @@ module Fastlane
|
|
82
83
|
UI.user_error!("GITHUB_REPOSITORY should not be empty") if name.to_s.empty?
|
83
84
|
end
|
84
85
|
),
|
85
|
-
FastlaneCore::ConfigItem.new(
|
86
|
-
key: :sdk_names,
|
87
|
-
description: 'SDK names',
|
88
|
-
is_string: false,
|
89
|
-
verify_block: proc do |sdks|
|
90
|
-
UI.user_error!("SDK names array has to be specified") unless sdks.kind_of?(Array) && sdks.size.positive?
|
91
|
-
end
|
92
|
-
),
|
93
86
|
FastlaneCore::ConfigItem.new(
|
94
87
|
key: :branch_sizes,
|
95
88
|
description: 'Branch sizes',
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class UpdateSdkSizeInReadmeAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
readme_content = File.read(params[:readme_path])
|
6
|
+
|
7
|
+
params[:sizes].each do |key, value|
|
8
|
+
framework_size_kb = value
|
9
|
+
framework_size_mb = (framework_size_kb / 1024).round(2)
|
10
|
+
readme_content.gsub!(%r{(https://img.shields.io/badge/#{key}-)(.*?)(-blue)}, "\\1#{framework_size_mb}\\3")
|
11
|
+
end
|
12
|
+
|
13
|
+
File.write(params[:readme_path], readme_content)
|
14
|
+
UI.success('Successfully updated the SDK size labels in README.md!')
|
15
|
+
end
|
16
|
+
|
17
|
+
#####################################################
|
18
|
+
# @!group Documentation
|
19
|
+
#####################################################
|
20
|
+
|
21
|
+
def self.description
|
22
|
+
'Update SDKs size in README.md'
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.available_options
|
26
|
+
[
|
27
|
+
FastlaneCore::ConfigItem.new(
|
28
|
+
key: :readme_path,
|
29
|
+
description: 'Path to README.md',
|
30
|
+
verify_block: proc do |name|
|
31
|
+
UI.user_error!("Path to README.md should not be empty") if name.to_s.empty?
|
32
|
+
end
|
33
|
+
),
|
34
|
+
FastlaneCore::ConfigItem.new(
|
35
|
+
key: :sizes,
|
36
|
+
description: 'SDK sizes',
|
37
|
+
is_string: false
|
38
|
+
)
|
39
|
+
]
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.is_supported?(platform)
|
43
|
+
true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-stream_actions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GetStream
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xctest_list
|
@@ -235,19 +235,22 @@ files:
|
|
235
235
|
- lib/fastlane/plugin/stream_actions/actions/build_app_for_ios_simulator.rb
|
236
236
|
- lib/fastlane/plugin/stream_actions/actions/current_branch.rb
|
237
237
|
- lib/fastlane/plugin/stream_actions/actions/custom_match.rb
|
238
|
+
- lib/fastlane/plugin/stream_actions/actions/git_status.rb
|
238
239
|
- lib/fastlane/plugin/stream_actions/actions/is_check_required.rb
|
239
240
|
- lib/fastlane/plugin/stream_actions/actions/pod_push_safely.rb
|
240
241
|
- lib/fastlane/plugin/stream_actions/actions/pr_comment.rb
|
242
|
+
- lib/fastlane/plugin/stream_actions/actions/pr_create.rb
|
241
243
|
- lib/fastlane/plugin/stream_actions/actions/prepare_simulator.rb
|
242
244
|
- lib/fastlane/plugin/stream_actions/actions/publish_ios_sdk.rb
|
243
245
|
- lib/fastlane/plugin/stream_actions/actions/read_changelog.rb
|
244
246
|
- lib/fastlane/plugin/stream_actions/actions/release_ios_sdk.rb
|
245
247
|
- lib/fastlane/plugin/stream_actions/actions/retrieve_xctest_names.rb
|
246
248
|
- lib/fastlane/plugin/stream_actions/actions/setup_git_config.rb
|
247
|
-
- lib/fastlane/plugin/stream_actions/actions/
|
249
|
+
- lib/fastlane/plugin/stream_actions/actions/show_sdk_size.rb
|
248
250
|
- lib/fastlane/plugin/stream_actions/actions/testflight_build.rb
|
249
251
|
- lib/fastlane/plugin/stream_actions/actions/touch_changelog.rb
|
250
252
|
- lib/fastlane/plugin/stream_actions/actions/update_copyright.rb
|
253
|
+
- lib/fastlane/plugin/stream_actions/actions/update_sdk_size_in_readme.rb
|
251
254
|
- lib/fastlane/plugin/stream_actions/actions/update_testplan.rb
|
252
255
|
- lib/fastlane/plugin/stream_actions/actions/wait_android_emu_idle.rb
|
253
256
|
- lib/fastlane/plugin/stream_actions/version.rb
|