Skip to content

Commit 67c417f

Browse files
authored
refactor(ci): force query-planner CI if engine changes (#2165)
1 parent 85e2b60 commit 67c417f

File tree

1 file changed

+36
-10
lines changed

1 file changed

+36
-10
lines changed

.github/workflows/query-planner-ci.yaml

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010
- 'router/**/*'
1111
- 'connect/**/*'
1212
- '.github/workflows/router-ci.yaml'
13+
- '.github/workflows/query-planner-ci.yaml'
1314
env:
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
2324
jobs:
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
@@ -38,6 +49,21 @@ jobs:
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

Comments
 (0)