9090 - name : " Check out repository code"
9191 uses : " actions/checkout@v5"
9292 - name : Setup Node.js
93- uses : actions/setup-node@v4
93+ uses : actions/setup-node@v5
9494 with :
9595 node-version : 22
9696 cache : ' npm'
@@ -420,7 +420,7 @@ jobs:
420420 echo INFRAHUB_TESTING_IMAGE_VER=local-${{ runner.name }}-${{ github.sha }} >> $GITHUB_ENV
421421 echo INFRAHUB_TESTING_DOCKER_IMAGE="opsmill/infrahub" >> $GITHUB_ENV
422422 - name : Install Invoke
423- run : pip install invoke toml
423+ run : pip install invoke
424424 - name : " Build container"
425425 run : " invoke dev.build"
426426 - name : " Setup Python environment"
@@ -535,7 +535,7 @@ jobs:
535535 with :
536536 submodules : true
537537 - name : Install NodeJS
538- uses : actions/setup-node@v4
538+ uses : actions/setup-node@v5
539539 with :
540540 node-version : 22
541541 cache : ' npm'
@@ -559,6 +559,63 @@ jobs:
559559 parallel : true
560560 file : frontend/app/coverage/lcov.info
561561
562+ graphql-schema :
563+ if : |
564+ always() && !cancelled() &&
565+ !contains(needs.*.result, 'failure') &&
566+ !contains(needs.*.result, 'cancelled') &&
567+ needs.files-changed.outputs.backend == 'true'
568+ needs : ["prepare-environment", "files-changed", "yaml-lint", "python-lint"]
569+ runs-on :
570+ group : huge-runners
571+ steps :
572+ - name : Check out repository code
573+ uses : actions/checkout@v4
574+ - name : Set up Python
575+ id : python
576+ uses : actions/setup-python@v6
577+ with :
578+ python-version : 3.12
579+ - name : " Setup environment"
580+ run : |
581+ pipx install -f poetry==${{ needs.prepare-environment.outputs.POETRY_VERSION }}
582+ poetry config virtualenvs.create true --local
583+ poetry env use 3.12
584+ poetry run pip install invoke toml
585+ env :
586+ PIPX_DEFAULT_PYTHON : ${{ steps.python.outputs.python-path }}
587+ - name : " Install Package"
588+ run : " poetry install"
589+
590+ - name : Install NodeJS
591+ uses : actions/setup-node@v4
592+ with :
593+ node-version : 20
594+ cache : ' npm'
595+ cache-dependency-path : ./schema/package-lock.json
596+ - name : " Install format-graphql"
597+ working-directory : schema
598+ run : npm install
599+
600+ - name : Select infrahub db port
601+ run : echo "INFRAHUB_DB_PORT=$(shuf -n 1 -i 10000-60000)" >> $GITHUB_ENV
602+
603+ - name : " Set environment variables"
604+ run : echo INFRAHUB_BUILD_NAME=infrahub-${{ runner.name }} >> $GITHUB_ENV
605+ - name : " Set environment variables"
606+ run : echo INFRAHUB_IMAGE_VER=local-${{ runner.name }}-${{ github.sha }} >> $GITHUB_ENV
607+ - name : " Clear docker environment"
608+ run : docker compose -p $INFRAHUB_BUILD_NAME down -v --remove-orphans --rmi local
609+
610+ - name : Create docker compose override
611+ run : mv development/docker-compose.dev-override-benchmark.yml development/docker-compose.dev-override.yml
612+
613+ - name : Start dependencies
614+ run : poetry run invoke dev.build dev.deps
615+
616+ - name : Run validation
617+ run : poetry run invoke schema.validate-graphqlschema
618+
562619 documentation :
563620 defaults :
564621 run :
@@ -577,7 +634,7 @@ jobs:
577634 with :
578635 submodules : true
579636 - name : Install NodeJS
580- uses : actions/setup-node@v4
637+ uses : actions/setup-node@v5
581638 with :
582639 node-version : 22
583640 cache : ' npm'
@@ -617,7 +674,7 @@ jobs:
617674 with :
618675 submodules : true
619676 - name : Install NodeJS
620- uses : actions/setup-node@v4
677+ uses : actions/setup-node@v5
621678 with :
622679 node-version : 22
623680 cache : ' npm'
@@ -735,7 +792,7 @@ jobs:
735792 with :
736793 submodules : true
737794 - name : Install NodeJS
738- uses : actions/setup-node@v4
795+ uses : actions/setup-node@v5
739796 with :
740797 node-version : 22
741798 cache : ' npm'
@@ -747,7 +804,7 @@ jobs:
747804 python-version : 3.12
748805
749806 - name : Install Invoke
750- run : pip install invoke toml
807+ run : pip install invoke
751808
752809 - name : Set job name
753810 run : echo JOB_NAME="$GITHUB_JOB" >> $GITHUB_ENV
@@ -921,7 +978,7 @@ jobs:
921978
922979 - name : Install Invoke
923980 run : |
924- pip install invoke toml
981+ pip install invoke
925982
926983 - name : Set job name
927984 run : echo JOB_NAME="$GITHUB_JOB" >> $GITHUB_ENV
0 commit comments