From 8c3f5f5637a95a2327e78d5dabcf357978aedcbb Mon Sep 17 00:00:00 2001 From: David Glasser Date: Thu, 18 Aug 2022 14:10:27 -0700 Subject: [PATCH] Skip creating a PR when all existing changesets are empty (#206) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Don't create a PR if all changesets are empty Fixes #205. Note that this maintains the previous behavior that if there are any changesets (even empty ones), the action does not publish packages. * Create three-needles-protect.md * Update .changeset/three-needles-protect.md Co-authored-by: Mateusz BurzyƄski --- .changeset/three-needles-protect.md | 5 +++++ src/index.ts | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 .changeset/three-needles-protect.md diff --git a/.changeset/three-needles-protect.md b/.changeset/three-needles-protect.md new file mode 100644 index 00000000..d13a259c --- /dev/null +++ b/.changeset/three-needles-protect.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Skip creating a PR when all existing changesets are empty. diff --git a/src/index.ts b/src/index.ts index 087eccc5..11214453 100644 --- a/src/index.ts +++ b/src/index.ts @@ -37,6 +37,9 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; let publishScript = core.getInput("publish"); let hasChangesets = changesets.length !== 0; + const hasNonEmptyChangesets = changesets.some( + (changeset) => changeset.releases.length > 0 + ); let hasPublishScript = !!publishScript; core.setOutput("published", "false"); @@ -96,6 +99,9 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; } return; } + case hasChangesets && !hasNonEmptyChangesets: + console.log("All changesets are empty; not creating PR"); + return; case hasChangesets: const { pullRequestNumber } = await runVersion({ script: getOptionalInput("version"),