fastlane-plugin-wpmreleasetoolkit 6.3.0 → 7.0.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
  SHA256:
3
- metadata.gz: bc23b6dcb021398be08fc810b93dcc9429944c774d9b3cd05c03fcd66195b362
4
- data.tar.gz: 03d51d5aa7598aa1e3eb72b96a4b7209d0644324ff7df745a61219a581a266fb
3
+ metadata.gz: ac3e9b8a4272392eae5f25dea94507640a13efabfe293e465b38dea1caf71f87
4
+ data.tar.gz: 922fe5a513a91f55a1a54e3ba256765b709f61237316c4710ff9af209053cb3f
5
5
  SHA512:
6
- metadata.gz: 3d79e772d831bb4d95897f319d938bcd23e365dc95c0c8a8b341a3238088ca31f95317a1e5079b51d417f28d0f392b3747e65e9b5d90be2be291fd6c94fca4d5
7
- data.tar.gz: 7d6d28cff026fad6962601f7202a9cc900f3cba0db4155c0ed0c9b1b90b816a40cf340e41e742c68db2698d689fd70f91692995a176ba7d855b27a47e0c7b797
6
+ metadata.gz: 9244c54b46964f9d1f0a11313cedde4e8ee4c5c910ec074caef5f56a12f9e472e46e3ac4bb3fc8fc047cf1abf67899a3f0f2fb9f488f54c3b697199bdf71130f
7
+ data.tar.gz: b8322d1a08bc6f3d94e128664c428243445e37c99503d2d807ec5902170ae5dfcd00d7eaeb08fa73ef283fb85aa07f2242048ebdf9383bc340817bd06292f99a
@@ -0,0 +1,85 @@
1
+ module Fastlane
2
+ module Actions
3
+ class BuildkiteAnnotateAction < Action
4
+ def self.run(params)
5
+ message = params[:message]
6
+ context = params[:context]
7
+ style = params[:style]
8
+
9
+ if message.nil?
10
+ # Delete an annotation, but swallow the error if the annotation didn't exist — to avoid having
11
+ # this action failing or printing a red log for no good reason — hence the `|| true`
12
+ ctx_param = "--context #{context.shellescape}" unless context.nil?
13
+ sh("buildkite-agent annotation remove #{ctx_param} || true")
14
+ else
15
+ # Add new annotation using `buildkite-agent`
16
+ extra_params = {
17
+ context: context,
18
+ style: style
19
+ }.compact.flat_map { |k, v| ["--#{k}", v] }
20
+ sh('buildkite-agent', 'annotate', *extra_params, params[:message])
21
+ end
22
+ end
23
+
24
+ #####################################################
25
+ # @!group Documentation
26
+ #####################################################
27
+
28
+ def self.description
29
+ 'Add or remove annotations to the current Buildkite build'
30
+ end
31
+
32
+ def self.details
33
+ <<~DETAILS
34
+ Add or remove annotations to the current Buildkite build.
35
+
36
+ Has to be run on a CI job (where a `buildkite-agent` is running), e.g. typically by a lane
37
+ that is triggered as part of a Buildkite CI step.
38
+
39
+ See https://buildkite.com/docs/agent/v3/cli-annotate
40
+ DETAILS
41
+ end
42
+
43
+ def self.available_options
44
+ [
45
+ FastlaneCore::ConfigItem.new(
46
+ key: :context,
47
+ env_name: 'BUILDKITE_ANNOTATION_CONTEXT',
48
+ description: 'The context of the annotation used to differentiate this annotation from others',
49
+ type: String,
50
+ optional: true
51
+ ),
52
+ FastlaneCore::ConfigItem.new(
53
+ key: :style,
54
+ env_name: 'BUILDKITE_ANNOTATION_STYLE',
55
+ description: 'The style of the annotation (`success`, `info`, `warning` or `error`)',
56
+ type: String,
57
+ optional: true,
58
+ verify_block: proc do |value|
59
+ valid_values = %w[success info warning error]
60
+ next if value.nil? || valid_values.include?(value)
61
+
62
+ UI.user_error!("Invalid value `#{value}` for parameter `style`. Valid values are: #{valid_values.join(', ')}")
63
+ end
64
+ ),
65
+ FastlaneCore::ConfigItem.new(
66
+ key: :message,
67
+ description: 'The message to use in the new annotation. Supports GFM-Flavored Markdown. ' \
68
+ + 'If message is nil, any existing annotation with the provided context will be deleted',
69
+ type: String,
70
+ optional: true,
71
+ default_value: nil # nil message = delete existing annotation if any
72
+ ),
73
+ ]
74
+ end
75
+
76
+ def self.authors
77
+ ['Automattic']
78
+ end
79
+
80
+ def self.is_supported?(platform)
81
+ true
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,67 @@
1
+ module Fastlane
2
+ module Actions
3
+ class BuildkiteMetadataAction < Action
4
+ def self.run(params)
5
+ # Set/Add new metadata values
6
+ params[:set]&.each do |key, value|
7
+ sh('buildkite-agent', 'meta-data', 'set', key.to_s, value.to_s)
8
+ end
9
+
10
+ # Return value of existing metadata key
11
+ sh('buildkite-agent', 'meta-data', 'get', params[:get].to_s) unless params[:get].nil?
12
+ end
13
+
14
+ #####################################################
15
+ # @!group Documentation
16
+ #####################################################
17
+
18
+ def self.description
19
+ 'Set/Get metadata to the current Buildkite build'
20
+ end
21
+
22
+ def self.details
23
+ <<~DETAILS
24
+ Set and/or get metadata to the current Buildkite build.
25
+
26
+ Has to be run on a CI job (where a `buildkite-agent` is running), e.g. typically by a lane
27
+ that is triggered as part of a Buildkite CI step.
28
+
29
+ See https://buildkite.com/docs/agent/v3/cli-meta-data
30
+ DETAILS
31
+ end
32
+
33
+ def self.available_options
34
+ [
35
+ FastlaneCore::ConfigItem.new(
36
+ key: :set,
37
+ env_name: 'BUILDKITE_METADATA_SET',
38
+ description: 'The hash of key/value pairs of the meta-data to set',
39
+ type: Hash,
40
+ optional: true,
41
+ default_value: nil
42
+ ),
43
+ FastlaneCore::ConfigItem.new(
44
+ key: :get,
45
+ env_name: 'BUILDKITE_METADATA_GET',
46
+ description: 'The key of the metadata to get the value of',
47
+ type: String,
48
+ optional: true,
49
+ default_value: nil
50
+ ),
51
+ ]
52
+ end
53
+
54
+ def self.return_value
55
+ 'The value of the Buildkite metadata corresponding to the provided `get` key. `nil` if no `get` parameter was provided.'
56
+ end
57
+
58
+ def self.authors
59
+ ['Automattic']
60
+ end
61
+
62
+ def self.is_supported?(platform)
63
+ true
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,259 @@
1
+ module Fastlane
2
+ module Actions
3
+ class PrototypeBuildDetailsCommentAction < Action
4
+ def self.run(params)
5
+ app_display_name = params[:app_display_name]
6
+ app_center_info = AppCenterInfo.from_params(params)
7
+ metadata = consolidate_metadata(params, app_center_info)
8
+
9
+ qr_code_url, extra_metadata = build_install_links(app_center_info, params[:download_url])
10
+ metadata.merge!(extra_metadata)
11
+
12
+ # Build the comment parts
13
+ icon_img_tag = img_tag(params[:app_icon] || app_center_info.icon, alt: app_display_name)
14
+ metadata_rows = metadata.compact.map { |key, value| "<tr><td><b>#{key}</b></td><td>#{value}</td></tr>" }
15
+ intro = "#{icon_img_tag}📲 You can test the changes from this Pull Request in <b>#{app_display_name}</b> by scanning the QR code below to install the corresponding build."
16
+ footnote = params[:footnote] || (app_center_info.org_name.nil? ? '' : DEFAULT_APP_CENTER_FOOTNOTE)
17
+ body = <<~COMMENT_BODY
18
+ <table>
19
+ <tr>
20
+ <td rowspan='#{metadata_rows.count + 1}' width='260px'><img src='#{qr_code_url}' width='250' height='250' /></td>
21
+ <td><b>App Name</b></td><td>#{icon_img_tag} #{app_display_name}</td>
22
+ </tr>
23
+ #{metadata_rows.join("\n")}
24
+ </table>
25
+ #{footnote}
26
+ COMMENT_BODY
27
+
28
+ if params[:fold]
29
+ "<details><summary>#{intro}</summary>\n#{body}</details>\n"
30
+ else
31
+ "<p>#{intro}</p>\n#{body}"
32
+ end
33
+ end
34
+
35
+ #####################################################
36
+ # @!group Helpers
37
+ #####################################################
38
+
39
+ NO_INSTALL_URL_ERROR_MESSAGE = <<~NO_URL_ERROR.freeze
40
+ No URL provided to download or install the app.
41
+ - Either use this action right after using `appcenter_upload` and provide an `app_center_org_name` (so that this action can use the link to the App Center build)
42
+ - Or provide an explicit value for the `download_url` parameter
43
+ NO_URL_ERROR
44
+
45
+ DEFAULT_APP_CENTER_FOOTNOTE = '<em>Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.</em>'.freeze
46
+
47
+ # A small model struct to consolidate and pack all the values related to App Center
48
+ #
49
+ AppCenterInfo = Struct.new(:org_name, :app_name, :display_name, :release_id, :icon, :version, :short_version, :os, :bundle_id) do
50
+ # A method to construct an AppCenterInfo instance from the action params, and infer the rest from the `lane_context` if available
51
+ def self.from_params(params)
52
+ org_name = params[:app_center_org_name]
53
+ ctx = if org_name && defined?(SharedValues::APPCENTER_BUILD_INFORMATION)
54
+ Fastlane::Actions.lane_context[SharedValues::APPCENTER_BUILD_INFORMATION] || {}
55
+ else
56
+ {}
57
+ end
58
+ app_name = params[:app_center_app_name] || ctx['app_name']
59
+ new(
60
+ org_name,
61
+ app_name,
62
+ ctx['app_display_name'] || app_name,
63
+ params[:app_center_release_id] || ctx['id'],
64
+ ctx['app_icon_url'],
65
+ ctx['version'],
66
+ ctx['short_version'],
67
+ ctx['app_os'],
68
+ ctx['bundle_identifier']
69
+ )
70
+ end
71
+ end
72
+
73
+ # Builds the installation link, QR code URL and extra metadata for download links from the available info
74
+ #
75
+ # @param [AppCenterInfo] app_center_info The struct containing all the values related to App Center info
76
+ # @param [String] download_url The `download_url` parameter passed to the action, if one exists
77
+ # @return [(String, Hash<String,String>)] A tuple containing:
78
+ # - The URL for the QR Code
79
+ # - A Hash of the extra metadata key/value pairs to add to the existing metadata, to enrich them with download/install links
80
+ #
81
+ def self.build_install_links(app_center_info, download_url)
82
+ install_url = nil
83
+ extra_metadata = {}
84
+ if download_url
85
+ install_url = download_url
86
+ extra_metadata['Direct Download'] = "<a href='#{install_url}'><code>#{File.basename(install_url)}</code></a>"
87
+ end
88
+ if app_center_info.org_name && app_center_info.app_name
89
+ install_url = "https://install.appcenter.ms/orgs/#{app_center_info.org_name}/apps/#{app_center_info.app_name}/releases/#{app_center_info.release_id}"
90
+ extra_metadata['App Center Build'] = "<a href='#{install_url}'>#{app_center_info.display_name} \##{app_center_info.release_id}</a>"
91
+ end
92
+ UI.user_error!(NO_INSTALL_URL_ERROR_MESSAGE) if install_url.nil?
93
+ qr_code_url = "https://chart.googleapis.com/chart?chs=500x500&cht=qr&chl=#{CGI.escape(install_url)}&choe=UTF-8"
94
+ [qr_code_url, extra_metadata]
95
+ end
96
+
97
+ # A method to build the Hash of metadata, based on the explicit ones passed by the user as parameter + the implicit ones from `AppCenterInfo`
98
+ #
99
+ # @param [Hash<Symbol, Any>] params The action's parameters, as received by `self.run`
100
+ # @param [AppCenterInfo] app_center_info The model object containing all the values related to App Center information
101
+ # @return [Hash<String, String>] A hash of all the metadata, gathered from both the explicit and the implicit ones
102
+ #
103
+ def self.consolidate_metadata(params, app_center_info)
104
+ metadata = params[:metadata]&.transform_keys(&:to_s) || {}
105
+ metadata['Build Number'] ||= app_center_info.version
106
+ metadata['Version'] ||= app_center_info.short_version
107
+ metadata[app_center_info.os == 'Android' ? 'Application ID' : 'Bundle ID'] ||= app_center_info.bundle_id
108
+ # (Feel free to add more CI-specific env vars in the line below to support other CI providers if you need)
109
+ metadata['Commit'] ||= ENV.fetch('BUILDKITE_COMMIT', nil) || other_action.last_git_commit[:abbreviated_commit_hash]
110
+ metadata
111
+ end
112
+
113
+ # Creates an HTML `<img>` tag for an icon URL or the image URL to represent a given Buildkite emoji
114
+ #
115
+ # @param [String] url_or_emoji A `String` which can be:
116
+ # - Either a valid URI to an image
117
+ # - Or a string formatted like `:emojiname:`, using a valid Buildite emoji name as defined in https://github.com/buildkite/emojis
118
+ # @param [String] alt The alt text to use for the `<img>` tag
119
+ # @return [String] The `<img …>` tag with the proper image and alt tag
120
+ #
121
+ def self.img_tag(url_or_emoji, alt: '')
122
+ return nil if url_or_emoji.nil?
123
+
124
+ emoji = url_or_emoji.match(/:(.*):/)&.captures&.first
125
+ app_icon_url = if emoji
126
+ "https://raw.githubusercontent.com/buildkite/emojis/main/img-buildkite-64/#{emoji}.png"
127
+ elsif URI(url_or_emoji)
128
+ url_or_emoji
129
+ end
130
+ app_icon_url ? "<img alt='#{alt}' align='top' src='#{app_icon_url}' width='20px' />" : ''
131
+ end
132
+
133
+ #####################################################
134
+ # @!group Documentation
135
+ #####################################################
136
+
137
+ def self.description
138
+ 'Generates a string providing all the details of a prototype build, nicely-formatted and ready to be used as a PR comment (e.g. via `comment_on_pr`).'
139
+ end
140
+
141
+ def self.details
142
+ <<~DESC
143
+ Generates a string providing all the details of a prototype build, nicely-formatted as HTML.
144
+ The returned string will typically be subsequently used by the `comment_on_pr` action to post that HTML as comment on a PR.
145
+
146
+ If you used the `appcenter_upload` lane (to upload the Prototype build to App Center) before calling this action, and pass
147
+ a value to the `app_center_org_name` parameter, then many of the parameters and metadata will be automatically extracted
148
+ from the `lane_context` provided by `appcenter_upload`, including:
149
+
150
+ - The `app_center_app_name`, `app_center_release_id` and installation URL to use for the QR code to point to that release in App Center
151
+ - The `app_icon`
152
+ - The app's Build Number / versionCode
153
+ - The app's Version / versionName
154
+ - The app's Bundle ID / Application ID
155
+ - A `footnote` mentioning the MC tool for Automatticians to add themselves to App Center
156
+
157
+ This means that if you are using App Center to distribute your Prototype Build, the only parameters you *have* to provide
158
+ to this action are `app_display_name` and `app_center_org_name`; plus, for `metadata` most of the interesting values will already be pre-filled.
159
+
160
+ Any of those implicit default values/metadata can of course be overridden by passing an explicit value to the appropriate parameter(s).
161
+ DESC
162
+ end
163
+
164
+ def self.available_options
165
+ app_center_auto = '(will be automatically extracted from `lane_context if you used `appcenter_upload` to distribute your Prototype build)'
166
+ [
167
+ FastlaneCore::ConfigItem.new(
168
+ key: :app_display_name,
169
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_APP_DISPLAY_NAME',
170
+ description: 'The display name to use for the app in the comment message',
171
+ optional: false,
172
+ type: String
173
+ ),
174
+ FastlaneCore::ConfigItem.new(
175
+ key: :app_center_org_name,
176
+ env_name: 'APPCENTER_OWNER_NAME', # Intentionally the same as the one used by the `appcenter_upload` action
177
+ description: 'The name of the organization in App Center (if you used `appcenter_upload` to distribute your Prototype build)',
178
+ type: String,
179
+ optional: true
180
+ ),
181
+ FastlaneCore::ConfigItem.new(
182
+ key: :app_center_app_name,
183
+ env_name: 'APPCENTER_APP_NAME', # Intentionally the same as the one used by the `appcenter_upload` action
184
+ description: "The name of the app in App Center #{app_center_auto}",
185
+ type: String,
186
+ optional: true,
187
+ default_value_dynamic: true # As it will be extracted from the `lane_context`` if you used `appcenter_upload``
188
+ ),
189
+ FastlaneCore::ConfigItem.new(
190
+ key: :app_center_release_id,
191
+ env_name: 'APPCENTER_RELEASE_ID',
192
+ description: "The release ID/Number in App Center #{app_center_auto}",
193
+ type: String,
194
+ optional: true,
195
+ default_value_dynamic: true # As it will be extracted from the `lane_context`` if you used `appcenter_upload``
196
+ ),
197
+ FastlaneCore::ConfigItem.new(
198
+ key: :app_icon,
199
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_APP_ICON',
200
+ description: "The name of an emoji from the https://github.com/buildkite/emojis list or the full image URL to use for the icon of the app in the message. #{app_center_auto}",
201
+ type: String,
202
+ optional: true,
203
+ default_value_dynamic: true # As it will be extracted from the `lane_context`` if you used `appcenter_upload``
204
+ ),
205
+ FastlaneCore::ConfigItem.new(
206
+ key: :download_url,
207
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_DOWNLOAD_URL',
208
+ description: 'The URL to download the build as a direct download. ' \
209
+ + 'If you uploaded the build to App Center, we recommend leaving this nil (the comment will use the URL to the App Center build for the QR code)',
210
+ type: String,
211
+ optional: true,
212
+ default_value: nil
213
+ ),
214
+ FastlaneCore::ConfigItem.new(
215
+ key: :fold,
216
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_FOLD',
217
+ description: 'If true, will wrap the HTML table inside a <details> block (hidden by default)',
218
+ type: Boolean,
219
+ default_value: false
220
+ ),
221
+ FastlaneCore::ConfigItem.new(
222
+ key: :metadata,
223
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_METADATA',
224
+ description: 'All additional metadata (as key/value pairs) you want to include in the HTML table of the comment. ' \
225
+ + 'If you are running this action after `appcenter_upload`, some metadata will automatically be added to this list too',
226
+ type: Hash,
227
+ optional: true,
228
+ default_value_dynamic: true # As some metadata will be auto-filled if you used `appcenter_upload`
229
+ ),
230
+ FastlaneCore::ConfigItem.new(
231
+ key: :footnote,
232
+ env_name: 'FL_PROTOTYPE_BUILD_DETAILS_COMMENT_FOOTNOTE',
233
+ description: 'Optional footnote to add below the HTML table of the comment. ' \
234
+ + 'If you are running this action after `appcenter_upload`, a default footnote for Automatticians will be used unless you provide an explicit value',
235
+ type: String,
236
+ optional: true,
237
+ default_value_dynamic: true # We have a default footnote for the case when you used App Center
238
+ ),
239
+ ]
240
+ end
241
+
242
+ def self.return_type
243
+ :string
244
+ end
245
+
246
+ def self.return_value
247
+ 'The HTML comment containing all the relevant info about a Prototype build and links to install it'
248
+ end
249
+
250
+ def self.authors
251
+ ['Automattic']
252
+ end
253
+
254
+ def self.is_supported?(platform)
255
+ true
256
+ end
257
+ end
258
+ end
259
+ end
@@ -21,10 +21,6 @@ module Fastlane
21
21
  Fastlane::Helper::GitHelper.create_branch(@new_release_branch, from: default_branch)
22
22
  UI.message 'Done!'
23
23
 
24
- UI.message 'Updating glotPressKeys...' unless params[:skip_glotpress]
25
- update_glotpress_key unless params[:skip_glotpress]
26
- UI.message 'Done' unless params[:skip_glotpress]
27
-
28
24
  UI.message 'Updating Fastlane deliver file...' unless params[:skip_deliver]
29
25
  Fastlane::Helper::Ios::VersionHelper.update_fastlane_deliver(@new_short_version) unless params[:skip_deliver]
30
26
  UI.message 'Done!' unless params[:skip_deliver]
@@ -35,7 +31,7 @@ module Fastlane
35
31
 
36
32
  Fastlane::Helper::Ios::GitHelper.commit_version_bump(
37
33
  include_deliverfile: !params[:skip_deliver],
38
- include_metadata: !params[:skip_glotpress]
34
+ include_metadata: false
39
35
  )
40
36
 
41
37
  UI.message 'Done.'
@@ -55,16 +51,11 @@ module Fastlane
55
51
 
56
52
  def self.available_options
57
53
  [
58
- FastlaneCore::ConfigItem.new(key: :skip_glotpress,
59
- env_name: 'FL_IOS_CODEFREEZE_BUMP_SKIPGLOTPRESS',
60
- description: 'Skips GlotPress key update',
61
- is_string: false, # true: verifies the input is a string, false: every kind of value
62
- default_value: false), # the default value if the user didn't provide one
63
54
  FastlaneCore::ConfigItem.new(key: :skip_deliver,
64
55
  env_name: 'FL_IOS_CODEFREEZE_BUMP_SKIPDELIVER',
65
56
  description: 'Skips Deliver key update',
66
- is_string: false, # true: verifies the input is a string, false: every kind of value
67
- default_value: false), # the default value if the user didn't provide one
57
+ type: Boolean,
58
+ default_value: false),
68
59
  FastlaneCore::ConfigItem.new(key: :default_branch,
69
60
  env_name: 'FL_RELEASE_TOOLKIT_DEFAULT_BRANCH',
70
61
  description: 'Default branch of the repository',
@@ -105,15 +96,6 @@ module Fastlane
105
96
  UI.message("New short version: #{@new_short_version}")
106
97
  UI.message("Release branch: #{@new_release_branch}")
107
98
  end
108
-
109
- def self.update_glotpress_key
110
- dm_file = ENV['DOWNLOAD_METADATA']
111
- if File.exist?(dm_file)
112
- sh("sed -i '' \"s/let glotPressWhatsNewKey.*/let glotPressWhatsNewKey = \\\"v#{@new_short_version}-whats-new\\\"/\" #{dm_file}")
113
- else
114
- UI.user_error!("Can't find #{dm_file}.")
115
- end
116
- end
117
99
  end
118
100
  end
119
101
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Wpmreleasetoolkit
3
- VERSION = '6.3.0'
3
+ VERSION = '7.0.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-wpmreleasetoolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.3.0
4
+ version: 7.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: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5'
19
+ version: 6.1.7.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5'
26
+ version: 6.1.7.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: buildkit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -404,6 +404,8 @@ files:
404
404
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_shutdown_emulator_action.rb
405
405
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_tag_build.rb
406
406
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_release_notes.rb
407
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/buildkite_annotate_action.rb
408
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/buildkite_metadata_action.rb
407
409
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/buildkite_trigger_build_action.rb
408
410
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/check_for_toolkit_updates_action.rb
409
411
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/check_translation_progress.rb
@@ -418,6 +420,7 @@ files:
418
420
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_downloadmetadata_action.rb
419
421
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_update_metadata_source.rb
420
422
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb
423
+ - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/prototype_build_details_comment_action.rb
421
424
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/removebranchprotection_action.rb
422
425
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setbranchprotection_action.rb
423
426
  - lib/fastlane/plugin/wpmreleasetoolkit/actions/common/setfrozentag_action.rb