fastlane-plugin-wpmreleasetoolkit 10.0.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_codefreeze_prechecks.rb +3 -3
- data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_check_beta_deps.rb +66 -14
- data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_codefreeze_prechecks.rb +2 -2
- data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fb1745e0b380d077569e207dccd17c49c0704b4c0cf432bf2f0433a6902b079
|
4
|
+
data.tar.gz: f31e085f66591e5f9541d6ef925610f7a7e11431de40f414716d19079f214e0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e10dd60259b1605ae99ee51632c39cdc92f07bde6fb0b5020f6652b7f99c8f366b76ab857d87ff1aa9c188aca1f5af30eb07ff58d75c56bcfe7e88f4c6ba1aaf
|
7
|
+
data.tar.gz: 8d372187aa53abb0ef2d8652d4852c876b5d4a199687bbb19bfb46b031220ee07f80f028482272970411f94292e3e76d78ce38b91a280e513f55d1ecfbb549a3
|
@@ -35,8 +35,8 @@ module Fastlane
|
|
35
35
|
unless params[:skip_confirm]
|
36
36
|
confirm_message = "Building a new release branch starting from #{default_branch}.\nCurrent version is #{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
|
37
37
|
confirm_message += current_alpha_version.nil? ? no_alpha_version_message : "Current Alpha version is #{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{current_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
|
38
|
-
confirm_message += "After
|
39
|
-
confirm_message += current_alpha_version.nil? ? '' : "After
|
38
|
+
confirm_message += "After code freeze the new version will be: #{next_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{next_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
|
39
|
+
confirm_message += current_alpha_version.nil? ? '' : "After code freeze the new Alpha will be: #{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_NAME]} (#{next_alpha_version[Fastlane::Helper::Android::VersionHelper::VERSION_CODE]}).\n"
|
40
40
|
confirm_message += 'Do you want to continue?'
|
41
41
|
UI.user_error!('Aborted by user request') unless UI.confirm(confirm_message)
|
42
42
|
end
|
@@ -68,7 +68,7 @@ module Fastlane
|
|
68
68
|
[
|
69
69
|
FastlaneCore::ConfigItem.new(key: :skip_confirm,
|
70
70
|
env_name: 'FL_ANDROID_CODEFREEZE_PRECHECKS_SKIPCONFIRM',
|
71
|
-
description: 'Skips confirmation before
|
71
|
+
description: 'Skips confirmation before code freeze',
|
72
72
|
type: Boolean,
|
73
73
|
default_value: false), # the default value if the user didn't provide one
|
74
74
|
FastlaneCore::ConfigItem.new(key: :default_branch,
|
@@ -1,25 +1,50 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
1
3
|
module Fastlane
|
2
4
|
module Actions
|
3
5
|
class IosCheckBetaDepsAction < Action
|
6
|
+
ALL_PODS_STABLE_MESSAGE = 'All pods are pointing to a stable version. You can continue with the code freeze.'.freeze
|
7
|
+
NON_STABLE_PODS_MESSAGE = "Please create a new stable version of those pods and update the Podfile to the newly released version before continuing with the code freeze:\n".freeze
|
8
|
+
|
4
9
|
def self.run(params)
|
5
10
|
require_relative '../../helper/ios/ios_version_helper'
|
6
11
|
require_relative '../../helper/ios/ios_git_helper'
|
7
12
|
|
8
|
-
|
9
|
-
|
10
|
-
|
13
|
+
yaml = YAML.load_file(params[:lockfile])
|
14
|
+
non_stable_pods = {} # Key will be pod name, value will be reason for flagging
|
15
|
+
|
16
|
+
# Find pods referenced by commit and branch to a repo. if any
|
17
|
+
yaml['EXTERNAL SOURCES']&.each do |pod, options|
|
18
|
+
non_stable_pods[pod] = 'commit' if params[:report_commits] && options.key?(:commit)
|
19
|
+
non_stable_pods[pod] = 'branch' if params[:report_branches] && options.key?(:branch)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Find pods whose resolved version matches the regex
|
23
|
+
version_pattern = params[:report_version_pattern]
|
24
|
+
unless version_pattern.nil? || version_pattern.empty?
|
25
|
+
regex = begin
|
26
|
+
Regexp.new(version_pattern)
|
27
|
+
rescue RegexpError
|
28
|
+
UI.user_error!("Invalid regex pattern: `#{version_pattern}`")
|
29
|
+
end
|
30
|
+
resolved_pods = yaml['PODS'].flat_map { |entry| entry.is_a?(Hash) ? entry.keys : entry }
|
31
|
+
resolved_pods.each do |line|
|
32
|
+
(pod, version) = /(.*) \((.*)\)/.match(line)&.captures
|
33
|
+
non_stable_pods[pod] = regex.source if regex.match?(version)
|
34
|
+
end
|
11
35
|
end
|
12
36
|
|
13
|
-
|
14
|
-
|
37
|
+
message = ''
|
38
|
+
if non_stable_pods.empty?
|
39
|
+
message << ALL_PODS_STABLE_MESSAGE
|
15
40
|
else
|
16
|
-
message
|
17
|
-
|
18
|
-
message << "#{
|
41
|
+
message << NON_STABLE_PODS_MESSAGE
|
42
|
+
non_stable_pods.sort.each do |pod, reason|
|
43
|
+
message << " - #{pod} (currently points to #{reason})\n"
|
19
44
|
end
|
20
|
-
message << 'Please update to the released version before continuing with the code freeze.'
|
21
45
|
end
|
22
46
|
UI.important(message)
|
47
|
+
{ message: message, pods: non_stable_pods }
|
23
48
|
end
|
24
49
|
|
25
50
|
#####################################################
|
@@ -36,10 +61,33 @@ module Fastlane
|
|
36
61
|
|
37
62
|
def self.available_options
|
38
63
|
[
|
39
|
-
FastlaneCore::ConfigItem.new(
|
40
|
-
|
41
|
-
|
42
|
-
|
64
|
+
FastlaneCore::ConfigItem.new(
|
65
|
+
key: :lockfile,
|
66
|
+
description: 'Path to the Podfile.lock to analyse',
|
67
|
+
default_value: 'Podfile.lock',
|
68
|
+
type: String,
|
69
|
+
verify_block: proc do |value|
|
70
|
+
UI.user_error!("File `#{value}` does not exist") unless File.exist?(value)
|
71
|
+
end
|
72
|
+
),
|
73
|
+
FastlaneCore::ConfigItem.new(
|
74
|
+
key: :report_commits,
|
75
|
+
description: 'Whether to report pods referenced by commit',
|
76
|
+
default_value: true,
|
77
|
+
type: Boolean
|
78
|
+
),
|
79
|
+
FastlaneCore::ConfigItem.new(
|
80
|
+
key: :report_branches,
|
81
|
+
description: 'Whether to report pods referenced by branch',
|
82
|
+
default_value: true,
|
83
|
+
type: Boolean
|
84
|
+
),
|
85
|
+
FastlaneCore::ConfigItem.new(
|
86
|
+
key: :report_version_pattern,
|
87
|
+
description: 'Report any pod whose resolved version matches this Regex pattern. Set to empty string to ignore',
|
88
|
+
default_value: '-beta|-rc',
|
89
|
+
type: String
|
90
|
+
),
|
43
91
|
]
|
44
92
|
end
|
45
93
|
|
@@ -47,7 +95,11 @@ module Fastlane
|
|
47
95
|
end
|
48
96
|
|
49
97
|
def self.return_value
|
50
|
-
|
98
|
+
<<~RETURN_VALUE
|
99
|
+
A Hash with keys `message` and `pods`.
|
100
|
+
- The `message` can be used to e.g. post a Buildkite annotation.
|
101
|
+
- The `pods` is itself a `Hash` whose keys are the pod names and values are the reason for the violation
|
102
|
+
RETURN_VALUE
|
51
103
|
end
|
52
104
|
|
53
105
|
def self.authors
|
@@ -18,7 +18,7 @@ module Fastlane
|
|
18
18
|
next_version = Fastlane::Helper::Ios::VersionHelper.calc_next_release_version(current_version)
|
19
19
|
|
20
20
|
# Ask user confirmation
|
21
|
-
unless params[:skip_confirm] || UI.confirm("Building a new release branch starting from #{default_branch}.\nCurrent version is #{current_version} (#{current_build_version}).\nAfter
|
21
|
+
unless params[:skip_confirm] || UI.confirm("Building a new release branch starting from #{default_branch}.\nCurrent version is #{current_version} (#{current_build_version}).\nAfter code freeze the new version will be: #{next_version}.\nDo you want to continue?")
|
22
22
|
UI.user_error!('Aborted by user request')
|
23
23
|
end
|
24
24
|
|
@@ -46,7 +46,7 @@ module Fastlane
|
|
46
46
|
[
|
47
47
|
FastlaneCore::ConfigItem.new(key: :skip_confirm,
|
48
48
|
env_name: 'FL_IOS_CODEFREEZE_PRECHECKS_SKIPCONFIRM',
|
49
|
-
description: 'Skips confirmation before
|
49
|
+
description: 'Skips confirmation before code freeze',
|
50
50
|
type: Boolean,
|
51
51
|
default_value: false), # the default value if the user didn't provide one
|
52
52
|
FastlaneCore::ConfigItem.new(key: :default_branch,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-wpmreleasetoolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 11.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Automattic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|