Skip to content
60 changes: 60 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ jobs:
job_get_metadata:
name: Get Metadata
runs-on: ubuntu-latest
permissions:
pull-requests: read
steps:
- name: Check out current commit
uses: actions/checkout@v3
Expand All @@ -64,8 +66,60 @@ jobs:
COMMIT_SHA=$(git rev-parse --short ${{ github.event.pull_request.head.sha || github.event.head_commit.id || env.HEAD_COMMIT }})
echo "COMMIT_SHA=$COMMIT_SHA" >> $GITHUB_ENV
echo "COMMIT_MESSAGE=$(git log -n 1 --pretty=format:%s $COMMIT_SHA)" >> $GITHUB_ENV

- name: Determine changed packages
uses: getsentry/[email protected]
id: changed
with:
filters: |
shared: &shared
- '*.{js,ts,json,yml,lock}'
- 'CHANGELOG.md'
- '.github/**'
- 'jest/**'
- 'rollup/**'
- 'scripts/**'
- 'packages/core/**'
- 'packages/tracing/**'
- 'packages/utils/**'
- 'packages/types/**'
- 'packages/integrations/**'
browser:
- *shared
- 'packages/browser/**'
browser_integration:
- *shared
- 'packages/browser/**'
- 'packages/integration-tests/**'
ember:
- *shared
- 'packages/ember/**'
- 'packages/browser/**'
nextjs:
- *shared
- 'packages/nextjs/**'
- 'packages/node/**'
- 'packages/react/**'
- 'packages/browser/**'
remix:
- *shared
- 'packages/remix/**'
- 'packages/node/**'
- 'packages/react/**'
- 'packages/browser/**'
node:
- *shared
- 'packages/node/**'
- 'packages/node-integration-tests/**'

outputs:
commit_label: '${{ env.COMMIT_SHA }}: ${{ env.COMMIT_MESSAGE }}'
changed_nextjs: ${{ steps.changed.outputs.nextjs }}
changed_ember: ${{ steps.changed.outputs.ember }}
changed_remix: ${{ steps.changed.outputs.remix }}
changed_node: ${{ steps.changed.outputs.node }}
changed_browser: ${{ steps.changed.outputs.browser }}
changed_browser_integration: ${{ steps.changed.outputs.browser_integration }}

job_install_deps:
name: Install Dependencies
Expand Down Expand Up @@ -348,6 +402,7 @@ jobs:
job_nextjs_integration_test:
name: Test @sentry/nextjs on (Node ${{ matrix.node }})
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_nextjs == 'true' || github.event_name != 'pull_request'
continue-on-error: true
timeout-minutes: 30
runs-on: ubuntu-latest
Expand Down Expand Up @@ -385,6 +440,7 @@ jobs:
job_ember_tests:
name: Test @sentry/ember
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_ember == 'true' || github.event_name != 'pull_request'
continue-on-error: true
timeout-minutes: 10
runs-on: ubuntu-latest
Expand Down Expand Up @@ -426,6 +482,7 @@ jobs:
job_browser_playwright_tests:
name: Playwright - ${{ (matrix.tracing_only && 'Browser + Tracing') || 'Browser' }} (${{ matrix.bundle }})
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down Expand Up @@ -477,6 +534,7 @@ jobs:
job_browser_integration_tests:
name: Old Browser Integration Tests (${{ matrix.browser }})
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_browser == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
Expand Down Expand Up @@ -550,6 +608,7 @@ jobs:
job_node_integration_tests:
name: Node SDK Integration Tests (${{ matrix.node }})
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_node == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
Expand Down Expand Up @@ -585,6 +644,7 @@ jobs:
job_remix_integration_tests:
name: Remix SDK Integration Tests (${{ matrix.node }})
needs: [job_get_metadata, job_build]
if: needs.job_get_metadata.outputs.changed_remix == 'true' || github.event_name != 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 10
continue-on-error: true
Expand Down