From 3970f3e3e3bb6897a6238339c4539891e0ddadc8 Mon Sep 17 00:00:00 2001 From: Patrick Arminio Date: Wed, 12 Aug 2026 13:49:06 +0100 Subject: [PATCH 1/3] Compare committed GraphQL schemas --- .github/workflows/graphql-schema-diff.yml | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/graphql-schema-diff.yml diff --git a/.github/workflows/graphql-schema-diff.yml b/.github/workflows/graphql-schema-diff.yml new file mode 100644 index 0000000000..40305fbc9e --- /dev/null +++ b/.github/workflows/graphql-schema-diff.yml @@ -0,0 +1,35 @@ +name: GraphQL schema diff + +on: + pull_request: + paths: + - "backend/schema.graphql" + - ".github/workflows/graphql-schema-diff.yml" + +permissions: + contents: read + +jobs: + schema-diff: + name: GraphQL Inspector + runs-on: ubuntu-24.04 + + steps: + - name: Check out repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + persist-credentials: false + + - uses: actions/setup-node@v6 + with: + node-version: "24" + + - name: Compare schema with base branch + run: >- + npx --yes + --package=@graphql-inspector/cli@6.0.8 + --package=graphql@16.14.2 + graphql-inspector diff + "git:origin/${{ github.base_ref }}:backend/schema.graphql" + backend/schema.graphql From b078999c0cdf66eff43fd4601c39579f7faec8bd Mon Sep 17 00:00:00 2001 From: Patrick Arminio Date: Wed, 12 Aug 2026 13:51:50 +0100 Subject: [PATCH 2/3] Run schema diff after base changes --- .github/workflows/graphql-schema-diff.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/graphql-schema-diff.yml b/.github/workflows/graphql-schema-diff.yml index 40305fbc9e..ba30befe7f 100644 --- a/.github/workflows/graphql-schema-diff.yml +++ b/.github/workflows/graphql-schema-diff.yml @@ -2,6 +2,7 @@ name: GraphQL schema diff on: pull_request: + types: [opened, synchronize, reopened, edited] paths: - "backend/schema.graphql" - ".github/workflows/graphql-schema-diff.yml" From b3d7adb0808eb63912705a2ded3d47e19a5fc8ab Mon Sep 17 00:00:00 2001 From: Patrick Arminio Date: Wed, 12 Aug 2026 13:55:07 +0100 Subject: [PATCH 3/3] Compare schema with base commit --- .github/workflows/graphql-schema-diff.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/graphql-schema-diff.yml b/.github/workflows/graphql-schema-diff.yml index ba30befe7f..2cdbe56d1d 100644 --- a/.github/workflows/graphql-schema-diff.yml +++ b/.github/workflows/graphql-schema-diff.yml @@ -26,11 +26,21 @@ jobs: with: node-version: "24" + - name: Load base schema + id: base-schema + run: | + if git show "${{ github.event.pull_request.base.sha }}:backend/schema.graphql" > "$RUNNER_TEMP/base-schema.graphql"; then + echo "available=true" >> "$GITHUB_OUTPUT" + else + echo "::notice::The base commit has no committed GraphQL schema; skipping the initial baseline." + fi + - name: Compare schema with base branch + if: steps.base-schema.outputs.available == 'true' run: >- npx --yes --package=@graphql-inspector/cli@6.0.8 --package=graphql@16.14.2 graphql-inspector diff - "git:origin/${{ github.base_ref }}:backend/schema.graphql" + "$RUNNER_TEMP/base-schema.graphql" backend/schema.graphql