From 1f96b1e8a0f7f232e89d13b66262cced94d19f50 Mon Sep 17 00:00:00 2001 From: Andrew Lisowski Date: Thu, 21 Jan 2021 14:17:31 -0800 Subject: [PATCH] respect `skip` and `none` releases for prereleases --- packages/core/src/__tests__/auto.test.ts | 27 ++++++++++++++++++++++++ packages/core/src/auto.ts | 9 +++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/packages/core/src/__tests__/auto.test.ts b/packages/core/src/__tests__/auto.test.ts index 0d7a897c9..893de02f6 100644 --- a/packages/core/src/__tests__/auto.test.ts +++ b/packages/core/src/__tests__/auto.test.ts @@ -1355,6 +1355,33 @@ describe("Auto", () => { await auto.next({}); expect(afterRelease).toHaveBeenCalled(); }); + + test("respects none release labels", async () => { + const auto = new Auto({ ...defaults, plugins: [] }); + + // @ts-ignore + auto.checkClean = () => Promise.resolve(true); + auto.logger = dummyLog(); + await auto.loadConfig(); + auto.remote = "origin"; + auto.git!.publish = () => Promise.resolve({ data: {} } as any); + auto.git!.getLastTagNotInBaseBranch = () => + Promise.reject(new Error("Test")); + auto.git!.getLatestTagInBranch = () => Promise.reject(new Error("Test")); + auto.git!.getLatestRelease = () => Promise.resolve("abcd"); + auto.release!.generateReleaseNotes = () => Promise.resolve("notes"); + auto.release!.getCommitsInRelease = () => + Promise.resolve([ + makeCommitFromMsg("Test Commit", { labels: ["skip-release"] }), + ]); + + const next = jest.fn(); + auto.hooks.next.tap("test", next); + jest.spyOn(auto.release!, "getCommits").mockImplementation(); + + await auto.next({}); + expect(next).not.toHaveBeenCalled(); + }); }); describe("shipit", () => { diff --git a/packages/core/src/auto.ts b/packages/core/src/auto.ts index 24f6e35a2..485a1d862 100644 --- a/packages/core/src/auto.ts +++ b/packages/core/src/auto.ts @@ -1383,9 +1383,12 @@ export default class Auto { const commits = await this.release.getCommitsInRelease(lastTag); const releaseNotes = await this.release.generateReleaseNotes(lastTag); const labels = commits.map((commit) => commit.labels); - const bump = - calculateSemVerBump(labels, this.semVerLabels!, this.config) || - SEMVER.patch; + const bump = calculateSemVerBump(labels, this.semVerLabels!, this.config); + + if (bump === "") { + this.logger.log.info("No version published."); + return; + } if (!args.quiet) { this.logger.log.info("Full Release notes for next release:");