From 4b61c2993e7ce2fc734c5dcfbbcd5133a6f59a9f Mon Sep 17 00:00:00 2001 From: iamvigneshwars Date: Mon, 11 Mar 2024 11:28:58 +0000 Subject: [PATCH] Github action to check subgraph schema againt supergraph schema --- .github/workflows/schema.yml | 31 ++++++++++++++++++++++++------- backend/pin_packing/src/main.rs | 3 ++- backend/targeting/src/main.rs | 3 ++- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/.github/workflows/schema.yml b/.github/workflows/schema.yml index 6527ee6c..6e2b65c0 100644 --- a/.github/workflows/schema.yml +++ b/.github/workflows/schema.yml @@ -11,12 +11,18 @@ jobs: strategy: matrix: service: - - compound_library - - compound_soaking - - crystal_library - - soakdb_sync - - pin_packing - - targeting + - name: compound_library + publish: true + - name: compound_soaking + publish: true + - name: crystal_library + publish: true + - name: soakdb_sync + publish: false + - name: pin_packing + publish: false + - name: targeting + publish: false runs-on: ubuntu-latest steps: - name: Checkout source @@ -47,7 +53,18 @@ jobs: name: ${{ matrix.service }}.graphql path: ${{ matrix.service }}.graphql - - name: publish subgraph + - name: check subgraph schema + if: ${{ matrix.service.publish }} + uses: danielsinclair/rover-setup@v1 + with: + args: subgraph check xchemlab@current + --schema ${{ matrix.service }}.graphql + --name ${{ matrix.service }} + env: + APOLLO_KEY: ${{ secrets.APOLLO_KEY }} + + - name: publish subgraph schema + if: ${{ matrix.service.publish == true }} uses: danielsinclair/rover-setup@v1 with: args: subgraph publish xchemlab@current diff --git a/backend/pin_packing/src/main.rs b/backend/pin_packing/src/main.rs index 23ac36e3..4b441fc1 100644 --- a/backend/pin_packing/src/main.rs +++ b/backend/pin_packing/src/main.rs @@ -113,7 +113,8 @@ async fn main() { } Cli::Schema(args) => { let schema = root_schema_builder().finish(); - let schema_string = schema.sdl(); + let export_option = async_graphql::SDLExportOptions::default().federation(); + let schema_string = schema.sdl_with_options(export_option); if let Some(path) = args.path { let mut file = File::create(path).unwrap(); file.write_all(schema_string.as_bytes()).unwrap(); diff --git a/backend/targeting/src/main.rs b/backend/targeting/src/main.rs index 2d2e4f52..729a78e0 100644 --- a/backend/targeting/src/main.rs +++ b/backend/targeting/src/main.rs @@ -125,7 +125,8 @@ async fn main() { } Cli::Schema(args) => { let schema = root_schema_builder().finish(); - let schema_string = schema.sdl(); + let export_option = async_graphql::SDLExportOptions::default().federation(); + let schema_string = schema.sdl_with_options(export_option); if let Some(path) = args.path { let mut file = File::create(path).unwrap(); file.write_all(schema_string.as_bytes()).unwrap();