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..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,7 +68,7 @@ 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', `${baseRef}...${headRef}`]); const changedFiles = diff.split('\n'); let changesetFile = ''; const changedPackages = new Set(); @@ -120,7 +123,7 @@ async function parseChangesetFile(changesetFile: string) { async function main() { const errors = []; try { - await exec('yarn changeset status'); + await exec(`yarn changeset status --since ${baseRef}`); console.log(`::set-output name=BLOCKING_FAILURE::false`); } catch (e) { if (e.message.match('No changesets present')) { @@ -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(