Skip to content

Commit 420ba13

Browse files
authored
Exit job early if must be skipped (baserow#4110)
1 parent 035f148 commit 420ba13

1 file changed

Lines changed: 83 additions & 10 deletions

File tree

.github/workflows/ci.yml

Lines changed: 83 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -222,12 +222,19 @@ jobs:
222222
needs:
223223
- build-backend
224224
- detect-changes
225-
# Only run if backend files changed or always on develop/master
226-
if: needs.detect-changes.outputs.backend == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
227225
permissions:
228226
contents: read
229227
packages: read
230228
steps:
229+
- name: Exit early if backend not changed and not develop/master
230+
run: |
231+
if [[ "${{ needs.detect-changes.outputs.backend }}" != "true" && \
232+
"${{ github.ref_name }}" != "develop" && \
233+
"${{ github.ref_name }}" != "master" ]]; then
234+
echo "No backend changes detected — skipping backend lint."
235+
exit 0
236+
fi
237+
231238
- name: Log in to GitHub Container Registry
232239
uses: docker/login-action@v3
233240
with:
@@ -244,11 +251,19 @@ jobs:
244251
needs:
245252
- build-frontend
246253
- detect-changes
247-
if: needs.detect-changes.outputs.frontend == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
248254
permissions:
249255
contents: read
250256
packages: read
251257
steps:
258+
- name: Exit early if frontend not changed and not develop/master
259+
run: |
260+
if [[ "${{ needs.detect-changes.outputs.frontend }}" != "true" && \
261+
"${{ github.ref_name }}" != "develop" && \
262+
"${{ github.ref_name }}" != "master" ]]; then
263+
echo "No backend changes detected — skipping backend lint."
264+
exit 0
265+
fi
266+
252267
- name: Log in to GitHub Container Registry
253268
uses: docker/login-action@v3
254269
with:
@@ -266,10 +281,18 @@ jobs:
266281
- backend-lint
267282
- frontend-lint
268283
- detect-changes
269-
if: needs.detect-changes.outputs.dockerfiles == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
270284
permissions:
271285
contents: read
272286
steps:
287+
- name: Exit early if dockerfiles not changed and not develop/master
288+
run: |
289+
if [[ "${{ needs.detect-changes.outputs.dockerfiles }}" != "true" && \
290+
"${{ github.ref_name }}" != "develop" && \
291+
"${{ github.ref_name }}" != "master" ]]; then
292+
echo "No backend changes detected — skipping backend lint."
293+
exit 0
294+
fi
295+
273296
- name: Checkout code
274297
uses: actions/checkout@v4
275298

@@ -313,7 +336,6 @@ jobs:
313336
- build-backend
314337
- backend-lint
315338
- detect-changes
316-
if: needs.detect-changes.outputs.backend == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
317339
permissions:
318340
contents: read
319341
packages: read
@@ -330,6 +352,15 @@ jobs:
330352
--health-timeout 5s
331353
--health-retries 5
332354
steps:
355+
- name: Exit early if backend not changed and not develop/master
356+
run: |
357+
if [[ "${{ needs.detect-changes.outputs.backend }}" != "true" && \
358+
"${{ github.ref_name }}" != "develop" && \
359+
"${{ github.ref_name }}" != "master" ]]; then
360+
echo "No backend changes detected — skipping backend lint."
361+
exit 0
362+
fi
363+
333364
- name: Log in to GitHub Container Registry
334365
uses: docker/login-action@v3
335366
with:
@@ -361,7 +392,6 @@ jobs:
361392
- build-backend
362393
- backend-lint
363394
- detect-changes
364-
if: needs.detect-changes.outputs.backend == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
365395
permissions:
366396
contents: read
367397
packages: read
@@ -384,6 +414,15 @@ jobs:
384414
--health-timeout 5s
385415
--health-retries 5
386416
steps:
417+
- name: Exit early if backend not changed and not develop/master
418+
run: |
419+
if [[ "${{ needs.detect-changes.outputs.backend }}" != "true" && \
420+
"${{ github.ref_name }}" != "develop" && \
421+
"${{ github.ref_name }}" != "master" ]]; then
422+
echo "No backend changes detected — skipping backend lint."
423+
exit 0
424+
fi
425+
387426
- name: Log in to GitHub Container Registry
388427
uses: docker/login-action@v3
389428
with:
@@ -433,7 +472,6 @@ jobs:
433472
- build-frontend
434473
- frontend-lint
435474
- detect-changes
436-
if: needs.detect-changes.outputs.frontend == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
437475
permissions:
438476
contents: read
439477
packages: read
@@ -444,6 +482,15 @@ jobs:
444482
matrix:
445483
shard: [1, 2, 3, 4]
446484
steps:
485+
- name: Exit early if frontend not changed and not develop/master
486+
run: |
487+
if [[ "${{ needs.detect-changes.outputs.frontend }}" != "true" && \
488+
"${{ github.ref_name }}" != "develop" && \
489+
"${{ github.ref_name }}" != "master" ]]; then
490+
echo "No backend changes detected — skipping backend lint."
491+
exit 0
492+
fi
493+
447494
- name: Log in to GitHub Container Registry
448495
uses: docker/login-action@v3
449496
with:
@@ -486,10 +533,18 @@ jobs:
486533
- backend-lint
487534
- frontend-lint
488535
- detect-changes
489-
if: needs.detect-changes.outputs.zapier == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
490536
permissions:
491537
contents: read
492538
steps:
539+
- name: Exit early if zapier not changed and not develop/master
540+
run: |
541+
if [[ "${{ needs.detect-changes.outputs.zapier }}" != "true" && \
542+
"${{ github.ref_name }}" != "develop" && \
543+
"${{ github.ref_name }}" != "master" ]]; then
544+
echo "No backend changes detected — skipping backend lint."
545+
exit 0
546+
fi
547+
493548
- name: Checkout code
494549
uses: actions/checkout@v4
495550

@@ -511,10 +566,18 @@ jobs:
511566
- backend-lint
512567
- frontend-lint
513568
- detect-changes
514-
if: needs.detect-changes.outputs.mjml == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
515569
permissions:
516570
contents: read
517571
steps:
572+
- name: Exit early if mjml not changed and not develop/master
573+
run: |
574+
if [[ "${{ needs.detect-changes.outputs.mjml }}" != "true" && \
575+
"${{ github.ref_name }}" != "develop" && \
576+
"${{ github.ref_name }}" != "master" ]]; then
577+
echo "No backend changes detected — skipping backend lint."
578+
exit 0
579+
fi
580+
518581
- name: Checkout code
519582
uses: actions/checkout@v4
520583

@@ -545,7 +608,6 @@ jobs:
545608
name: E2E Tests (Shard ${{ matrix.shard }})
546609
timeout-minutes: 60
547610
runs-on: ubuntu-latest
548-
if: needs.detect-changes.outputs.backend == 'true' || needs.detect-changes.outputs.frontend == 'true' || needs.detect-changes.outputs.dockerfiles == 'true' || github.ref_name == 'develop' || github.ref_name == 'master'
549611
needs:
550612
- build-backend
551613
- build-frontend
@@ -586,6 +648,17 @@ jobs:
586648
ports:
587649
- 9090:9090
588650
steps:
651+
- name: Exit early if no relevant changes
652+
run: |
653+
if [[ "${{ needs.detect-changes.outputs.backend }}" != "true" && \
654+
"${{ needs.detect-changes.outputs.frontend }}" != "true" && \
655+
"${{ needs.detect-changes.outputs.dockerfiles }}" != "true" && \
656+
"${{ github.ref_name }}" != "develop" && \
657+
"${{ github.ref_name }}" != "master" ]]; then
658+
echo "No backend, frontend, or Dockerfile changes detected — skipping job."
659+
exit 0
660+
fi
661+
589662
- name: Checkout code
590663
uses: actions/checkout@v4
591664

0 commit comments

Comments
 (0)