1010 - ' router/**/*'
1111 - ' connect/**/*'
1212 - ' .github/workflows/router-ci.yaml'
13+ - ' .github/workflows/query-planner-ci.yaml'
1314env :
1415 CI : true
1516 DO_NOT_TRACK : ' 1'
@@ -21,11 +22,21 @@ concurrency:
2122 group : ${{github.workflow}}-${{github.head_ref}}
2223 cancel-in-progress : true
2324jobs :
24- check-label :
25+ check-label-and-engine-changes :
2526 runs-on : ubuntu-latest
2627 outputs :
2728 has_label : ${{ steps.check_label.outputs.has_label }}
29+ engine_changed : ${{ steps.check_engine_changes.outputs.engine_changed }}
2830 steps :
31+ - name : Checkout Code
32+ uses : actions/checkout@v4
33+ with :
34+ fetch-depth : 0
35+ - name : Setup Go
36+ uses : actions/setup-go@v5
37+ with :
38+ go-version-file : router/go.mod
39+ cache : true
2940 - name : Check for query-planner label
3041 id : check_label
3142 uses : actions/github-script@v6
3849 });
3950 const hasLabel = labels.data.some(label => label.name === 'query-planner');
4051 core.setOutput('has_label', hasLabel ? 'true' : 'false');
52+ - name : Check for changes of engine
53+ id : check_engine_changes
54+ working-directory : router
55+ run : |
56+ current_engine_version=$(go list -f '{{.Version}}' -m github.com/wundergraph/graphql-go-tools/v2)
57+ git show ${{ github.event.pull_request.base.sha }}:router/go.mod > base.go.mod
58+ previous_engine_version=$(go list -f '{{.Version}}' -modfile base.go.mod -m github.com/wundergraph/graphql-go-tools/v2)
59+ if [ "$current_engine_version" != "$previous_engine_version" ]; then
60+ echo "engine_changed=true" >> $GITHUB_OUTPUT
61+ echo "Engine has been changed from $previous_engine_version to $current_engine_version"
62+ else
63+ echo "engine_changed=false" >> $GITHUB_OUTPUT
64+ echo "Engine has not been changed"
65+ fi
66+
4167 filter-changes :
4268 runs-on : ubuntu-latest
4369 outputs :
@@ -113,13 +139,13 @@ jobs:
113139 build_test : # This job is use to lock the merge of the PR if anything fails in the query planner
114140 runs-on : ubuntu-latest
115141 if : ${{ always() }}
116- needs : [ build-router, build-cli, cli-release-url, check-label ]
142+ needs : [ build-router, build-cli, cli-release-url, check-label-and-engine-changes ]
117143 outputs :
118144 workflow_url : ${{ steps.trigger_workflow.outputs.workflow_url }}
119145 workflow_id : ${{ steps.trigger_workflow.outputs.workflow_id }}
120146 steps :
121147 - uses : convictional/trigger-workflow-and-wait@v1.6.5
122- if : ${{ needs.check-label.outputs.has_label == 'true' }}
148+ if : ${{ needs.check-label-and-engine-changes .outputs.has_label == 'true' || needs.check-label-and-engine-changes.outputs.engine_changed == 'true' }}
123149 id : trigger_workflow
124150 name : Trigger Query Planner CI
125151 with :
@@ -132,13 +158,13 @@ jobs:
132158 client_payload : >-
133159 {
134160 "branch": "query-plan/pr-${{ github.event.pull_request.number }}",
135- "router": "${{ needs.build-router.outputs.image_ref || 'ghcr.io/wundergraph/router:latest' }}",
161+ "router": "${{ needs.build-router.outputs.image_ref || 'ghcr.io/wundergraph/cosmo/ router:latest' }}",
136162 "wgc": "${{ needs.build-cli.outputs.wgc || needs.cli-release-url.outputs.wgc }}"
137163 }
138164 get_pr_url :
139- needs : [ build_test, check-label ]
165+ needs : [ build_test, check-label-and-engine-changes ]
140166 runs-on : ubuntu-latest
141- if : ${{ always() && needs.check-label.outputs.has_label == 'true' }}
167+ if : ${{ always() && ( needs.check-label-and-engine-changes .outputs.has_label == 'true' || needs.check-label-and-engine-changes.outputs.engine_changed == 'true') }}
142168 outputs :
143169 pullrequest_url : ${{ steps.get_url.outputs.pr_url }}
144170 steps :
@@ -174,8 +200,8 @@ jobs:
174200 pr_url=$(cat pr-url.txt)
175201 echo "pr_url=$pr_url" >> $GITHUB_OUTPUT
176202 comment-on-failure :
177- needs : [build_test, get_pr_url, check-label]
178- if : ${{ needs.check-label.outputs.has_label == 'true' && failure() }}
203+ needs : [build_test, get_pr_url, check-label-and-engine-changes ]
204+ if : ${{ ( needs.check-label-and-engine-changes .outputs.has_label == 'true' || needs.check-label-and-engine-changes.outputs.engine_changed == 'true') && failure() }}
179205 runs-on : ubuntu-latest
180206 steps :
181207 - name : Comment PR on failure
@@ -193,8 +219,8 @@ jobs:
193219 The Internal Query Planner CI checks failed in the celestial repository, and this is going to stop the merge of this PR.
194220 If you are part of the WunderGraph organization, you can [see the PR with more details](${{ needs.get_pr_url.outputs.pullrequest_url }}).
195221 comment-on-success :
196- needs : [build_test, get_pr_url, check-label]
197- if : ${{ needs.check-label.outputs.has_label == 'true' && success() }}
222+ needs : [build_test, get_pr_url, check-label-and-engine-changes ]
223+ if : ${{ ( needs.check-label-and-engine-changes .outputs.has_label == 'true' || needs.check-label-and-engine-changes.outputs.engine_changed == 'true') && success() }}
198224 runs-on : ubuntu-latest
199225 steps :
200226 - name : Comment PR on failure
0 commit comments