Skip to content

Commit 1d3f06d

Browse files
committed
Fixing version reset if greater version incremented
1 parent 03b0319 commit 1d3f06d

File tree

5 files changed

+39
-15
lines changed

5 files changed

+39
-15
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## [Unreleased]
44

5+
## [1.0.1]
6+
## Fixed
7+
- Version reset if a version of a greater value incremented
8+
59
## [1.0.0]
610
### Added
711
- Initial release, see README.md for the list of features

action.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ inputs:
6565

6666
# Next version
6767
next-version-increment-major:
68-
description: 'Increment major version in result NEXT_VERSION'
68+
description: 'Increment major version in result NEXT_VERSION, resets all other versions to "0" and prerelease to "1" if found'
6969
required: false
7070
default: 'false'
7171
next-version-increment-minor:
72-
description: 'Increment minor version in result NEXT_VERSION'
72+
description: 'Increment minor version in result NEXT_VERSION, resets patch to "0" and prerelease to "1" if found'
7373
required: false
7474
default: 'false'
7575
next-version-increment-patch:
76-
description: 'Increment patch version in result NEXT_VERSION'
76+
description: 'Increment patch version in result NEXT_VERSION, resets prerelease to "1" if found'
7777
required: false
7878
default: 'false'
7979
next-version-increment-prerelease:

build/index.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20694,11 +20694,15 @@ function generateReleaseVersion(currentVersion, properties) {
2069420694
return releaseVersion;
2069520695
}
2069620696

20697-
function incrementPrerelease(version) {
20697+
function incrementPrerelease(version, reset) {
2069820698
let match = XRegExp.exec(version.prerelease, PRERELEASE_NUMBER_REGEX);
2069920699
if (match) {
2070020700
let prereleaseNumber = parseInt(match[0]);
20701-
prereleaseNumber += 1;
20701+
if(reset) {
20702+
prereleaseNumber = 1;
20703+
} else {
20704+
prereleaseNumber += 1;
20705+
}
2070220706
version.prerelease = version.prerelease.substring(0, match["index"]) + prereleaseNumber +
2070320707
version.prerelease.substring(match["index"] + match[0].length);
2070420708
}
@@ -20709,21 +20713,27 @@ function generateNextVersion(currentVersion, releaseVersion, properties) {
2070920713
if (!properties.nextIncrementPrerelease && !properties.nextIncrementPatch && !properties.nextIncrementMinor
2071020714
&& !properties.nextIncrementMajor) {
2071120715
let prerelease = nextVersion.prerelease;
20712-
incrementPrerelease(nextVersion);
20716+
incrementPrerelease(nextVersion, false);
2071320717
if (prerelease === nextVersion.prerelease) {
2071420718
nextVersion.patch += 1;
2071520719
}
2071620720
} else {
2071720721
if (properties.nextIncrementPrerelease) {
20718-
incrementPrerelease(nextVersion);
20722+
incrementPrerelease(nextVersion, false);
2071920723
}
2072020724
if (properties.nextIncrementPatch) {
20725+
incrementPrerelease(nextVersion, true);
2072120726
nextVersion.patch += 1;
2072220727
}
2072320728
if (properties.nextIncrementMinor) {
20729+
incrementPrerelease(nextVersion, true);
20730+
nextVersion.patch = 0;
2072420731
nextVersion.minor += 1;
2072520732
}
2072620733
if (properties.nextIncrementMajor) {
20734+
incrementPrerelease(nextVersion, true);
20735+
nextVersion.minor = 0;
20736+
nextVersion.patch = 0;
2072720737
nextVersion.major += 1;
2072820738
}
2072920739
}

src/index.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,15 @@ function generateReleaseVersion(currentVersion, properties) {
176176
return releaseVersion;
177177
}
178178

179-
function incrementPrerelease(version) {
179+
function incrementPrerelease(version, reset) {
180180
let match = XRegExp.exec(version.prerelease, PRERELEASE_NUMBER_REGEX);
181181
if (match) {
182182
let prereleaseNumber = parseInt(match[0]);
183-
prereleaseNumber += 1;
183+
if (reset) {
184+
prereleaseNumber = 1;
185+
} else {
186+
prereleaseNumber += 1;
187+
}
184188
version.prerelease = version.prerelease.substring(0, match["index"]) + prereleaseNumber +
185189
version.prerelease.substring(match["index"] + match[0].length);
186190
}
@@ -191,21 +195,27 @@ function generateNextVersion(currentVersion, releaseVersion, properties) {
191195
if (!properties.nextIncrementPrerelease && !properties.nextIncrementPatch && !properties.nextIncrementMinor
192196
&& !properties.nextIncrementMajor) {
193197
let prerelease = nextVersion.prerelease;
194-
incrementPrerelease(nextVersion);
198+
incrementPrerelease(nextVersion, false);
195199
if (prerelease === nextVersion.prerelease) {
196200
nextVersion.patch += 1;
197201
}
198202
} else {
199203
if (properties.nextIncrementPrerelease) {
200-
incrementPrerelease(nextVersion);
204+
incrementPrerelease(nextVersion, false);
201205
}
202206
if (properties.nextIncrementPatch) {
207+
incrementPrerelease(nextVersion, true);
203208
nextVersion.patch += 1;
204209
}
205210
if (properties.nextIncrementMinor) {
211+
incrementPrerelease(nextVersion, true);
212+
nextVersion.patch = 0;
206213
nextVersion.minor += 1;
207214
}
208215
if (properties.nextIncrementMajor) {
216+
incrementPrerelease(nextVersion, true);
217+
nextVersion.minor = 0;
218+
nextVersion.patch = 0;
209219
nextVersion.major += 1;
210220
}
211221
}

tests/index.test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -258,17 +258,17 @@ const RELEASE_VERSION = new index.Version({
258258
const NEXT_VERSION_TEST_CASES = [
259259
[{}, CURRENT_VERSION, RELEASE_VERSION, "1.2.3-BETA-8-SNAPSHOT"],
260260
[{"INPUT_NEXT-VERSION-PUT-BUILD-METADATA": "true"}, CURRENT_VERSION, RELEASE_VERSION, "1.2.3-BETA-8-SNAPSHOT+build.2017-02-04.5e2079"],
261-
[{"INPUT_NEXT-VERSION-INCREMENT-PATCH": "true"}, CURRENT_VERSION, RELEASE_VERSION, "1.2.4-BETA-7-SNAPSHOT"],
262-
[{"INPUT_NEXT-VERSION-INCREMENT-MINOR": "true"}, CURRENT_VERSION, RELEASE_VERSION, "1.3.3-BETA-7-SNAPSHOT"],
263-
[{"INPUT_NEXT-VERSION-INCREMENT-MAJOR": "true"}, CURRENT_VERSION, RELEASE_VERSION, "2.2.3-BETA-7-SNAPSHOT"],
261+
[{"INPUT_NEXT-VERSION-INCREMENT-PATCH": "true"}, CURRENT_VERSION, RELEASE_VERSION, "1.2.4-BETA-1-SNAPSHOT"],
262+
[{"INPUT_NEXT-VERSION-INCREMENT-MINOR": "true"}, CURRENT_VERSION, RELEASE_VERSION, "1.3.0-BETA-1-SNAPSHOT"],
263+
[{"INPUT_NEXT-VERSION-INCREMENT-MAJOR": "true"}, CURRENT_VERSION, RELEASE_VERSION, "2.0.0-BETA-1-SNAPSHOT"],
264264
[{"INPUT_NEXT-VERSION-INCREMENT-PRERELEASE": "true"}, new index.Version({
265265
...CURRENT_VERSION,
266266
prerelease: "SNAPSHOT"
267267
}), RELEASE_VERSION, "1.2.3-SNAPSHOT"],
268268
[{
269269
"INPUT_NEXT-VERSION-INCREMENT-MAJOR": "true",
270270
"INPUT_NEXT-VERSION-INCREMENT-PRERELEASE": "true"
271-
}, CURRENT_VERSION, RELEASE_VERSION, "2.2.3-BETA-8-SNAPSHOT"]
271+
}, CURRENT_VERSION, RELEASE_VERSION, "2.0.0-BETA-1-SNAPSHOT"]
272272
];
273273
describe("Test next version generation with different properties", () => {
274274
each(NEXT_VERSION_TEST_CASES).it("When inputs are '%s'; and current version is: '%s'; and release version is: '%s'; expected is '%s'", (inputs, currentVersion, releaseVersion, expected) => {

0 commit comments

Comments
 (0)