fastlane-plugin-better_semantic_release 2.0.1 → 2.0.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07f8f88f0e9ce157b5e16d2b00101b143b94390d6e0f1806a5c3942464a61718
|
4
|
+
data.tar.gz: eea2ce50bd0aef6f0b6df4aa3a403fd5198321cc5f8f38e8c3546721433fe75a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0cd4041df9ed124c554f262ddfef436c4074de685bad1cf21295fe23e4bc1a1b92251eb65bc16de7eff733e51a47f35b0dfb6aa0b252613b00e868b3dc589801
|
7
|
+
data.tar.gz: 040b4d517911c0af92f27cbf56119cfb3b5ba2afc600739220bb26b1aa516eab0d7112fcaa8bb1195b2070cb78cd8b49405d5521b3f7d6dc7464d1bdbe1c86a6
|
@@ -28,8 +28,16 @@ module Fastlane
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.get_last_tag_hash(params)
|
31
|
-
command = "git rev-list -n 1 refs/tags/#{params[:tag_name]}"
|
32
|
-
Actions.sh(command, log: params[:debug]).chomp
|
31
|
+
#command = "git rev-list -n 1 refs/tags/#{params[:tag_name]}"
|
32
|
+
#Actions.sh(command, log: params[:debug]).chomp
|
33
|
+
|
34
|
+
command = "git log -2 --pretty=format:'%H' #{params[:tag_name]}"
|
35
|
+
command_output = Actions.sh(command, log: false).chomp
|
36
|
+
hashes = command_output.split("\n")
|
37
|
+
if hashes.length > 1
|
38
|
+
return hashes[1]
|
39
|
+
end
|
40
|
+
return nil
|
33
41
|
end
|
34
42
|
|
35
43
|
def self.get_commits_from_hash(params)
|
@@ -42,15 +50,14 @@ module Fastlane
|
|
42
50
|
end
|
43
51
|
|
44
52
|
def self.get_beginning_of_next_sprint(params)
|
45
|
-
# command to get first commit
|
46
|
-
git_command = 'git rev-list --max-parents=0 HEAD'
|
47
|
-
|
48
53
|
tag = get_last_tag(match: params[:match], debug: params[:debug])
|
49
54
|
|
50
55
|
# if tag doesn't exist it get's first commit or fallback tag (v*.*.*)
|
51
56
|
if tag.empty?
|
52
57
|
UI.message("It couldn't match tag for #{params[:match]}. Check if first commit can be taken as a beginning of next release")
|
53
58
|
# If there is no tag found we taking the first commit of current branch
|
59
|
+
# command to get first commit
|
60
|
+
git_command = 'git rev-list --max-parents=0 HEAD'
|
54
61
|
hash_lines = Actions.sh("#{git_command} | wc -l", log: params[:debug]).chomp
|
55
62
|
|
56
63
|
if hash_lines.to_i == 1
|
@@ -126,43 +133,47 @@ module Fastlane
|
|
126
133
|
releases = params[:releases]
|
127
134
|
|
128
135
|
format_pattern = lane_context[SharedValues::CONVENTIONAL_CHANGELOG_ACTION_FORMAT_PATTERN]
|
129
|
-
splitted.each do |
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
splitted.each do |squashed_commit|
|
137
|
+
commits = squashed_commit.split("*")
|
138
|
+
commits.drop(1).each do |line|
|
139
|
+
parts = line.split(":")
|
140
|
+
if parts.length > 1
|
141
|
+
# conventional commits are in format
|
142
|
+
# type: subject (fix: app crash - for example)
|
143
|
+
commit = Helper::BetterSemanticReleaseHelper.parse_commit(
|
144
|
+
commit_subject: line,
|
145
|
+
commit_body: parts[1].strip,
|
146
|
+
releases: releases,
|
147
|
+
pattern: format_pattern
|
148
|
+
)
|
149
|
+
|
150
|
+
unless commit[:scope].nil?
|
151
|
+
# if this commit has a scope, then we need to inspect to see if that is one of the scopes we're trying to exclude
|
152
|
+
scope = commit[:scope]
|
153
|
+
scopes_to_ignore = params[:ignore_scopes]
|
154
|
+
# if it is, we'll skip this commit when bumping versions
|
155
|
+
next if scopes_to_ignore.include?(scope) #=> true
|
156
|
+
end
|
140
157
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
158
|
+
if commit[:release] == "major" || commit[:is_breaking_change]
|
159
|
+
next_major += 1
|
160
|
+
next_minor = 0
|
161
|
+
next_patch = 0
|
162
|
+
elsif commit[:release] == "minor"
|
163
|
+
next_minor += 1
|
164
|
+
next_patch = 0
|
165
|
+
elsif commit[:release] == "patch"
|
166
|
+
next_patch += 1
|
167
|
+
end
|
148
168
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
next_patch = 0
|
153
|
-
elsif commit[:release] == "minor"
|
154
|
-
next_minor += 1
|
155
|
-
next_patch = 0
|
156
|
-
elsif commit[:release] == "patch"
|
157
|
-
next_patch += 1
|
158
|
-
end
|
169
|
+
unless commit[:is_codepush_friendly]
|
170
|
+
is_next_version_compatible_with_codepush = false
|
171
|
+
end
|
159
172
|
|
160
|
-
|
161
|
-
|
173
|
+
next_version = "#{next_major}.#{next_minor}.#{next_patch}"
|
174
|
+
UI.message("#{next_version}") if params[:show_version_path]
|
175
|
+
end
|
162
176
|
end
|
163
|
-
|
164
|
-
next_version = "#{next_major}.#{next_minor}.#{next_patch}"
|
165
|
-
UI.message("#{next_version}: #{subject}") if params[:show_version_path]
|
166
177
|
end
|
167
178
|
|
168
179
|
next_version = "#{next_major}.#{next_minor}.#{next_patch}"
|
@@ -188,7 +199,7 @@ module Fastlane
|
|
188
199
|
end
|
189
200
|
|
190
201
|
def self.is_codepush_friendly(params)
|
191
|
-
git_command =
|
202
|
+
git_command = "git rev-list --max-parents=#{params[:start_hash]} HEAD"
|
192
203
|
# Begining of the branch is taken for codepush analysis
|
193
204
|
hash_lines = Actions.sh("#{git_command} | wc -l", log: params[:debug]).chomp
|
194
205
|
hash = Actions.sh(git_command, log: params[:debug]).chomp
|
@@ -214,29 +225,34 @@ module Fastlane
|
|
214
225
|
|
215
226
|
format_pattern = lane_context[SharedValues::CONVENTIONAL_CHANGELOG_ACTION_FORMAT_PATTERN]
|
216
227
|
splitted.each do |line|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
228
|
+
parts = line.split(':')
|
229
|
+
if parts.length > 1
|
230
|
+
# conventional commits are in format
|
231
|
+
# type: subject (fix: app crash - for example)
|
232
|
+
commit = Helper::BetterSemanticReleaseHelper.parse_commit(
|
233
|
+
commit_subject: line,
|
234
|
+
commit_body: parts[1].strip,
|
235
|
+
releases: releases,
|
236
|
+
pattern: format_pattern,
|
237
|
+
codepush_friendly: codepush_friendly
|
238
|
+
)
|
239
|
+
|
240
|
+
#UI.message commit
|
241
|
+
|
242
|
+
if commit[:release] == "major" || commit[:is_breaking_change]
|
243
|
+
next_major += 1
|
244
|
+
next_minor = 0
|
245
|
+
next_patch = 0
|
246
|
+
elsif commit[:release] == "minor"
|
247
|
+
next_minor += 1
|
248
|
+
next_patch = 0
|
249
|
+
elsif commit[:release] == "patch"
|
250
|
+
next_patch += 1
|
251
|
+
end
|
237
252
|
|
238
|
-
|
239
|
-
|
253
|
+
unless commit[:is_codepush_friendly]
|
254
|
+
last_incompatible_codepush_version = "#{next_major}.#{next_minor}.#{next_patch}"
|
255
|
+
end
|
240
256
|
end
|
241
257
|
end
|
242
258
|
|
@@ -304,7 +320,7 @@ module Fastlane
|
|
304
320
|
FastlaneCore::ConfigItem.new(
|
305
321
|
key: :codepush_friendly,
|
306
322
|
description: "These types are consider as codepush friendly automatically",
|
307
|
-
default_value: ["chore", "
|
323
|
+
default_value: ["build", "chore", "ci", "docs", "fix", "feat", "perf", "refactor", "style", "test"],
|
308
324
|
type: Array,
|
309
325
|
optional: true
|
310
326
|
),
|
@@ -333,6 +349,13 @@ module Fastlane
|
|
333
349
|
default_value: false,
|
334
350
|
type: Boolean,
|
335
351
|
optional: true
|
352
|
+
),
|
353
|
+
FastlaneCore::ConfigItem.new(
|
354
|
+
key: :start_hash,
|
355
|
+
description: "Hash to start from when calculating versions",
|
356
|
+
default_value: "HEAD",
|
357
|
+
type: String,
|
358
|
+
optional: true
|
336
359
|
)
|
337
360
|
]
|
338
361
|
end
|
@@ -1 +1 @@
|
|
1
|
-
module Fastlane module BetterSemanticRelease VERSION = "2.0.
|
1
|
+
module Fastlane module BetterSemanticRelease VERSION = "2.0.4" end end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-better_semantic_release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Greco
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|