From e4618a2fbcc8b007221f807eeb01839fd37cb86b Mon Sep 17 00:00:00 2001 From: Pierre Vanduynslager Date: Thu, 8 Mar 2018 11:22:55 -0500 Subject: [PATCH] fix: exclude prereleases from version retrived by `getLastRelease` --- lib/get-last-release.js | 4 +++- test/get-last-release.test.js | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/get-last-release.js b/lib/get-last-release.js index 179b5807..21e0c738 100644 --- a/lib/get-last-release.js +++ b/lib/get-last-release.js @@ -33,7 +33,9 @@ module.exports = async (tagFormat, logger) => { .map(tag => { return {gitTag: tag, version: (tag.match(tagRegexp) || new Array(2))[1]}; }) - .filter(tag => tag.version && semver.valid(semver.clean(tag.version))) + .filter( + tag => tag.version && semver.valid(semver.clean(tag.version)) && !semver.prerelease(semver.clean(tag.version)) + ) .sort((a, b) => semver.rcompare(a.version, b.version)); debug('found tags: %o', tags); diff --git a/test/get-last-release.test.js b/test/get-last-release.test.js index 17dbd9c6..88548c9c 100644 --- a/test/get-last-release.test.js +++ b/test/get-last-release.test.js @@ -17,7 +17,7 @@ test.afterEach.always(() => { process.chdir(cwd); }); -test.serial('Get the highest valid tag', async t => { +test.serial('Get the highest non-prerelease valid tag', async t => { // Create a git repository, set the current working directory at the root of the repo await gitRepo(); // Create some commits and tags @@ -29,6 +29,8 @@ test.serial('Get the highest valid tag', async t => { await gitTagVersion('v1.0.0'); await gitCommits(['Fourth']); await gitTagVersion('v3.0'); + await gitCommits(['Fifth']); + await gitTagVersion('v3.0.0-beta.1'); const result = await getLastRelease(`v\${version}`, t.context.logger); @@ -117,4 +119,11 @@ test.serial('Get the highest valid tag corresponding to the "tagFormat"', async gitTag: '2.0.0-1.0.0-bar.1', version: '1.0.0', }); + + await gitTagVersion('3.0.0-bar.1'); + t.deepEqual(await getLastRelease(`\${version}-bar.1`, t.context.logger), { + gitHead, + gitTag: '3.0.0-bar.1', + version: '3.0.0', + }); });