From 84311371520b33ee9fe85a89355100b0b3a7ff08 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 1 Jul 2021 14:47:01 -0700 Subject: [PATCH 1/5] Test changeset checker --- .changeset/fair-cycles-rescue.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fair-cycles-rescue.md diff --git a/.changeset/fair-cycles-rescue.md b/.changeset/fair-cycles-rescue.md new file mode 100644 index 00000000000..87f8bf841f7 --- /dev/null +++ b/.changeset/fair-cycles-rescue.md @@ -0,0 +1,5 @@ +--- +'@firebase/app': patch +--- + +test From 9f71f16a79f692e1c428af4557e67b3d472565a1 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 1 Jul 2021 15:05:56 -0700 Subject: [PATCH 2/5] Try using env variables --- .github/workflows/check-changeset.yml | 4 ++++ scripts/check_changeset.ts | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-changeset.yml b/.github/workflows/check-changeset.yml index 9ae229e679f..3d35135df6f 100644 --- a/.github/workflows/check-changeset.yml +++ b/.github/workflows/check-changeset.yml @@ -2,6 +2,10 @@ name: Check Changeset on: pull_request +env: + GITHUB_PULL_REQUEST_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + GITHUB_PULL_REQUEST_BASE_SHA: ${{ github.event.pull_request.base.sha }} + jobs: check_changeset: name: Check changeset vs changed files diff --git a/scripts/check_changeset.ts b/scripts/check_changeset.ts index 716ec33692f..cb38470cd67 100644 --- a/scripts/check_changeset.ts +++ b/scripts/check_changeset.ts @@ -65,7 +65,10 @@ async function getDiffData(): Promise<{ changedPackages: Set; changesetFile: string; } | null> { - const diff = await git.diff(['--name-only', 'origin/master...HEAD']); + const diff = await git.diff([ + '--name-only', + `${process.env.GITHUB_PULL_REQUEST_BASE_SHA}...${process.env.GITHUB_PULL_REQUEST_HEAD_SHA}` + ]); const changedFiles = diff.split('\n'); let changesetFile = ''; const changedPackages = new Set(); @@ -173,9 +176,8 @@ async function main() { // Check for packages with a minor or major bump where 'firebase' hasn't been // bumped high enough or at all. - const { highestBump, bumpText, bumpPackage } = getHighestBump( - changesetPackages - ); + const { highestBump, bumpText, bumpPackage } = + getHighestBump(changesetPackages); if (highestBump > bumpRank.patch) { if (changesetPackages['firebase'] == null) { errors.push( From 662780fcaec420a1efad5cb09a13b0a7629f6b59 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 1 Jul 2021 15:17:16 -0700 Subject: [PATCH 3/5] try using since with sha --- scripts/check_changeset.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/check_changeset.ts b/scripts/check_changeset.ts index cb38470cd67..49da4ba30ed 100644 --- a/scripts/check_changeset.ts +++ b/scripts/check_changeset.ts @@ -123,7 +123,9 @@ async function parseChangesetFile(changesetFile: string) { async function main() { const errors = []; try { - await exec('yarn changeset status'); + await exec( + `yarn changeset status --since ${process.env.GITHUB_PULL_REQUEST_BASE_SHA}` + ); console.log(`::set-output name=BLOCKING_FAILURE::false`); } catch (e) { if (e.message.match('No changesets present')) { From 6c908cff2aec9a809839879cab6b2773f41473ad Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 1 Jul 2021 15:21:58 -0700 Subject: [PATCH 4/5] Remove test file --- .changeset/fair-cycles-rescue.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/fair-cycles-rescue.md diff --git a/.changeset/fair-cycles-rescue.md b/.changeset/fair-cycles-rescue.md deleted file mode 100644 index 87f8bf841f7..00000000000 --- a/.changeset/fair-cycles-rescue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@firebase/app': patch ---- - -test From 8b5552e499f94f04a05781e4f1e9b99ba6afcdcf Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 1 Jul 2021 15:25:51 -0700 Subject: [PATCH 5/5] Add fallback for running locally --- scripts/check_changeset.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/check_changeset.ts b/scripts/check_changeset.ts index 49da4ba30ed..b4e5554509c 100644 --- a/scripts/check_changeset.ts +++ b/scripts/check_changeset.ts @@ -25,6 +25,9 @@ import fs from 'mz/fs'; const root = resolve(__dirname, '..'); const git = simpleGit(root); +const baseRef = process.env.GITHUB_PULL_REQUEST_BASE_SHA || 'master'; +const headRef = process.env.GITHUB_PULL_REQUEST_HEAD_SHA || 'HEAD'; + // Version bump text converted to rankable numbers. const bumpRank: Record = { 'patch': 0, @@ -65,10 +68,7 @@ async function getDiffData(): Promise<{ changedPackages: Set; changesetFile: string; } | null> { - const diff = await git.diff([ - '--name-only', - `${process.env.GITHUB_PULL_REQUEST_BASE_SHA}...${process.env.GITHUB_PULL_REQUEST_HEAD_SHA}` - ]); + const diff = await git.diff(['--name-only', `${baseRef}...${headRef}`]); const changedFiles = diff.split('\n'); let changesetFile = ''; const changedPackages = new Set(); @@ -123,9 +123,7 @@ async function parseChangesetFile(changesetFile: string) { async function main() { const errors = []; try { - await exec( - `yarn changeset status --since ${process.env.GITHUB_PULL_REQUEST_BASE_SHA}` - ); + await exec(`yarn changeset status --since ${baseRef}`); console.log(`::set-output name=BLOCKING_FAILURE::false`); } catch (e) { if (e.message.match('No changesets present')) {