Skip to content

Commit f1ffb6a

Browse files
authored
chore(ci): Only run CI tests when related files changed (#6145)
* All tests run when not running in PR context * We try to be defensive and run as much as possibly affected
1 parent edf9f41 commit f1ffb6a

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

.github/workflows/build.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ jobs:
4848
job_get_metadata:
4949
name: Get Metadata
5050
runs-on: ubuntu-latest
51+
permissions:
52+
pull-requests: read
5153
steps:
5254
- name: Check out current commit
5355
uses: actions/checkout@v3
@@ -64,8 +66,60 @@ jobs:
6466
COMMIT_SHA=$(git rev-parse --short ${{ github.event.pull_request.head.sha || github.event.head_commit.id || env.HEAD_COMMIT }})
6567
echo "COMMIT_SHA=$COMMIT_SHA" >> $GITHUB_ENV
6668
echo "COMMIT_MESSAGE=$(git log -n 1 --pretty=format:%s $COMMIT_SHA)" >> $GITHUB_ENV
69+
70+
- name: Determine changed packages
71+
uses: getsentry/[email protected]
72+
id: changed
73+
with:
74+
filters: |
75+
shared: &shared
76+
- '*.{js,ts,json,yml,lock}'
77+
- 'CHANGELOG.md'
78+
- '.github/**'
79+
- 'jest/**'
80+
- 'rollup/**'
81+
- 'scripts/**'
82+
- 'packages/core/**'
83+
- 'packages/tracing/**'
84+
- 'packages/utils/**'
85+
- 'packages/types/**'
86+
- 'packages/integrations/**'
87+
browser:
88+
- *shared
89+
- 'packages/browser/**'
90+
browser_integration:
91+
- *shared
92+
- 'packages/browser/**'
93+
- 'packages/integration-tests/**'
94+
ember:
95+
- *shared
96+
- 'packages/ember/**'
97+
- 'packages/browser/**'
98+
nextjs:
99+
- *shared
100+
- 'packages/nextjs/**'
101+
- 'packages/node/**'
102+
- 'packages/react/**'
103+
- 'packages/browser/**'
104+
remix:
105+
- *shared
106+
- 'packages/remix/**'
107+
- 'packages/node/**'
108+
- 'packages/react/**'
109+
- 'packages/browser/**'
110+
node:
111+
- *shared
112+
- 'packages/node/**'
113+
- 'packages/node-integration-tests/**'
114+
67115
outputs:
68116
commit_label: '${{ env.COMMIT_SHA }}: ${{ env.COMMIT_MESSAGE }}'
117+
changed_nextjs: ${{ steps.changed.outputs.nextjs }}
118+
changed_ember: ${{ steps.changed.outputs.ember }}
119+
changed_remix: ${{ steps.changed.outputs.remix }}
120+
changed_node: ${{ steps.changed.outputs.node }}
121+
changed_browser: ${{ steps.changed.outputs.browser }}
122+
changed_browser_integration: ${{ steps.changed.outputs.browser_integration }}
69123

70124
job_install_deps:
71125
name: Install Dependencies
@@ -348,6 +402,7 @@ jobs:
348402
job_nextjs_integration_test:
349403
name: Test @sentry/nextjs on (Node ${{ matrix.node }})
350404
needs: [job_get_metadata, job_build]
405+
if: needs.job_get_metadata.outputs.changed_nextjs == 'true' || github.event_name != 'pull_request'
351406
continue-on-error: true
352407
timeout-minutes: 30
353408
runs-on: ubuntu-latest
@@ -385,6 +440,7 @@ jobs:
385440
job_ember_tests:
386441
name: Test @sentry/ember
387442
needs: [job_get_metadata, job_build]
443+
if: needs.job_get_metadata.outputs.changed_ember == 'true' || github.event_name != 'pull_request'
388444
continue-on-error: true
389445
timeout-minutes: 10
390446
runs-on: ubuntu-latest
@@ -426,6 +482,7 @@ jobs:
426482
job_browser_playwright_tests:
427483
name: Playwright - ${{ (matrix.tracing_only && 'Browser + Tracing') || 'Browser' }} (${{ matrix.bundle }})
428484
needs: [job_get_metadata, job_build]
485+
if: needs.job_get_metadata.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request'
429486
runs-on: ubuntu-latest
430487
strategy:
431488
matrix:
@@ -477,6 +534,7 @@ jobs:
477534
job_browser_integration_tests:
478535
name: Old Browser Integration Tests (${{ matrix.browser }})
479536
needs: [job_get_metadata, job_build]
537+
if: needs.job_get_metadata.outputs.changed_browser == 'true' || github.event_name != 'pull_request'
480538
runs-on: ubuntu-latest
481539
timeout-minutes: 10
482540
continue-on-error: true
@@ -550,6 +608,7 @@ jobs:
550608
job_node_integration_tests:
551609
name: Node SDK Integration Tests (${{ matrix.node }})
552610
needs: [job_get_metadata, job_build]
611+
if: needs.job_get_metadata.outputs.changed_node == 'true' || github.event_name != 'pull_request'
553612
runs-on: ubuntu-latest
554613
timeout-minutes: 10
555614
continue-on-error: true
@@ -585,6 +644,7 @@ jobs:
585644
job_remix_integration_tests:
586645
name: Remix SDK Integration Tests (${{ matrix.node }})
587646
needs: [job_get_metadata, job_build]
647+
if: needs.job_get_metadata.outputs.changed_remix == 'true' || github.event_name != 'pull_request'
588648
runs-on: ubuntu-latest
589649
timeout-minutes: 10
590650
continue-on-error: true

0 commit comments

Comments
 (0)