@@ -22,24 +22,25 @@ concurrency:
2222 group : ${{github.workflow}}-${{github.head_ref}}
2323 cancel-in-progress : true
2424jobs :
25- check-label -and-engine-changes :
25+ check-labels -and-engine-changes :
2626 runs-on : ubuntu-latest
2727 outputs :
2828 has_label : ${{ steps.check_label.outputs.has_label }}
29+ has_skip_label : ${{ steps.check_label_skip.outputs.has_label }}
2930 engine_changed : ${{ steps.check_engine_changes.outputs.engine_changed }}
3031 steps :
3132 - name : Checkout Code
3233 uses : actions/checkout@v4
3334 with :
3435 fetch-depth : 0
35- - name : Setup Go
36+ - name : Setup Go
3637 uses : actions/setup-go@v5
3738 with :
3839 go-version-file : router/go.mod
3940 cache : true
4041 - name : Check for query-planner label
4142 id : check_label
42- uses : actions/github-script@v6
43+ uses : actions/github-script@v7
4344 with :
4445 script : |
4546 const labels = await github.rest.issues.listLabelsOnIssue({
4950 });
5051 const hasLabel = labels.data.some(label => label.name === 'query-planner');
5152 core.setOutput('has_label', hasLabel ? 'true' : 'false');
53+ - name : Check for query-planner-skip label
54+ id : check_label_skip
55+ uses : actions/github-script@v7
56+ with :
57+ script : |
58+ const labels = await github.rest.issues.listLabelsOnIssue({
59+ owner: context.repo.owner,
60+ repo: context.repo.repo,
61+ issue_number: context.issue.number
62+ });
63+ const hasLabel = labels.data.some(label => label.name === 'query-planner-skip');
64+ core.setOutput('has_label', hasLabel ? 'true' : 'false');
5265 - name : Check for changes of engine
5366 id : check_engine_changes
5467 working-directory : router
@@ -89,10 +102,10 @@ jobs:
89102 - 'connect/**/*'
90103 - '.github/workflows/cli-ci.yaml'
91104 build-router :
92- needs : filter-changes
105+ needs : [ filter-changes, check-labels-and-engine-changes]
93106 # This is a limitation of GitHub. Only organization members can push to GitHub Container Registry
94107 # For now, we will disable the push to the GitHub Container Registry for external contributor
95- if : ${{ needs.filter-changes.outputs.router_changed == 'true' && github.event.pull_request.head.repo.full_name == github.repository}}
108+ if : ${{ needs.filter-changes.outputs.router_changed == 'true' && github.event.pull_request.head.repo.full_name == github.repository && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' }}
96109 runs-on : ubuntu-latest
97110 outputs :
98111 image_ref : ${{ steps.build_push_image.outputs.image_ref }}
@@ -110,10 +123,9 @@ jobs:
110123 image_name : router-qp
111124 image_description : ' Cosmo Router Query Planner'
112125 image_platforms : linux/amd64
113- with_tests : " false"
114126 build-cli :
115- needs : filter-changes
116- if : ${{ needs.filter-changes.outputs.cli_changed == 'true' }}
127+ needs : [ filter-changes, check-labels-and-engine-changes]
128+ if : ${{ needs.filter-changes.outputs.cli_changed == 'true' && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' }}
117129 runs-on : ubuntu-latest
118130 outputs :
119131 wgc : ${{ steps.cli-build.outputs.artifact-url }}
@@ -125,8 +137,9 @@ jobs:
125137 github-sha : ${{ github.sha }}
126138 target : bun-linux-x64
127139 cli-release-url :
140+ needs : [filter-changes, check-labels-and-engine-changes]
128141 runs-on : ubuntu-latest
129- if : ${{ needs.filter-changes.outputs.cli_changed != 'true' }}
142+ if : ${{ needs.filter-changes.outputs.cli_changed != 'true' && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' }}
130143 env :
131144 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
132145 steps :
@@ -139,13 +152,13 @@ jobs:
139152 build_test : # This job is use to lock the merge of the PR if anything fails in the query planner
140153 runs-on : ubuntu-latest
141154 if : ${{ always() }}
142- needs : [ build-router, build-cli, cli-release-url, check-label -and-engine-changes ]
155+ needs : [build-router, build-cli, cli-release-url, check-labels -and-engine-changes]
143156 outputs :
144157 workflow_url : ${{ steps.trigger_workflow.outputs.workflow_url }}
145158 workflow_id : ${{ steps.trigger_workflow.outputs.workflow_id }}
146159 steps :
147160 -
uses :
convictional/[email protected] 148- if : ${{ needs.check-label -and-engine-changes.outputs.has_label == 'true' || needs.check-label -and-engine-changes.outputs.engine_changed == 'true' }}
161+ if : ${{ ( needs.check-labels -and-engine-changes.outputs.has_label == 'true' || needs.check-labels -and-engine-changes.outputs.engine_changed == 'true') && needs.check-labels-and-engine-changes.outputs.has_skip_label ! = 'true' }}
149162 id : trigger_workflow
150163 name : Trigger Query Planner CI
151164 with :
@@ -162,9 +175,9 @@ jobs:
162175 "wgc": "${{ needs.build-cli.outputs.wgc || needs.cli-release-url.outputs.wgc }}"
163176 }
164177 get_pr_url :
165- needs : [ build_test, check-label -and-engine-changes ]
178+ needs : [build_test, check-labels -and-engine-changes]
166179 runs-on : ubuntu-latest
167- if : ${{ always() && (needs.check-label -and-engine-changes.outputs.has_label == 'true' || needs.check-label -and-engine-changes.outputs.engine_changed == 'true') }}
180+ if : ${{ always() && (needs.check-labels -and-engine-changes.outputs.has_label == 'true' || needs.check-labels -and-engine-changes.outputs.engine_changed == 'true') && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' }}
168181 outputs :
169182 pullrequest_url : ${{ steps.get_url.outputs.pr_url }}
170183 steps :
@@ -200,8 +213,8 @@ jobs:
200213 pr_url=$(cat pr-url.txt)
201214 echo "pr_url=$pr_url" >> $GITHUB_OUTPUT
202215 comment-on-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() }}
216+ needs : [build_test, get_pr_url, check-labels -and-engine-changes]
217+ if : ${{ (needs.check-labels -and-engine-changes.outputs.has_label == 'true' || needs.check-labels -and-engine-changes.outputs.engine_changed == 'true') && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' && failure() }}
205218 runs-on : ubuntu-latest
206219 steps :
207220 - name : Comment PR on failure
@@ -219,8 +232,8 @@ jobs:
219232 The Internal Query Planner CI checks failed in the celestial repository, and this is going to stop the merge of this PR.
220233 If you are part of the WunderGraph organization, you can [see the PR with more details](${{ needs.get_pr_url.outputs.pullrequest_url }}).
221234 comment-on-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() }}
235+ needs : [build_test, get_pr_url, check-labels -and-engine-changes]
236+ if : ${{ (needs.check-labels -and-engine-changes.outputs.has_label == 'true' || needs.check-labels -and-engine-changes.outputs.engine_changed == 'true') && needs.check-labels-and-engine-changes.outputs.has_skip_label != 'true' && success() }}
224237 runs-on : ubuntu-latest
225238 steps :
226239 - name : Comment PR on failure
@@ -231,4 +244,3 @@ jobs:
231244 # ✅ Internal Query Planner CI checks passed
232245 The Internal Query Planner CI checks passed in the celestial repository, and this is going to allow the merge of this PR.
233246 If you are part of the WunderGraph organization, you can [see the PR with more details](${{ needs.get_pr_url.outputs.pullrequest_url }}).
234-
0 commit comments