Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
2d296b1
Revert "ci: Run ESLint only on changed files in a PR (#116660)"
getsentry-bot Jun 2, 2026
8574025
ref: Remove `relay:measurements-smart-conversion` feature (#116615)
loewenheim Jun 2, 2026
30f6d61
chore(seer-slack): Remove unused flag (#116683)
leeandher Jun 2, 2026
5f63338
fix(data-scrubbing): Stop source field suggestion scroll from crashin…
scttcper Jun 2, 2026
b319ab1
feat(api): Union response annotations with plugin narrowing + relaxed…
azulus Jun 2, 2026
93d1b84
chore: Rollout semver-ordering-with-build-code (#116622)
ryan953 Jun 2, 2026
32ac347
feat: Add KAFKA_TOPIC_CONSUMER_CONFIG for per-topic consumer config (…
enochtangg Jun 2, 2026
6c417a7
ref(flags): Remove organizations:seer-slack-workflows (#116640)
wedamija Jun 2, 2026
fc2e06e
chore(api): mark prompts-activity as private (#116702)
cvxluo Jun 2, 2026
4252bff
ci: devservices 1.4.0 (#116700)
joshuarli Jun 2, 2026
81c1bec
fix(events): Don't default the seer referrers (#116704)
wmak Jun 2, 2026
e70b763
feat(scraps): RevealOnHover compound component (#115953)
natemoo-re Jun 2, 2026
52f80d7
release: 26.5.2
gricha Jun 2, 2026
27a339d
feat(ingest): match messages in custom inbound filter (#116701)
oioki Jun 2, 2026
4670cb7
chore: Rollout root-cause-stopping-point (#116623)
ryan953 Jun 2, 2026
2fd27e5
ref(flags): Graduate organizations:code-review-experiments-enabled (#…
wedamija Jun 2, 2026
9325312
feat(onboarding): Scaffold SCM-first project creation as a single vie…
jaydgoss Jun 2, 2026
c7da4d4
fix(preprod): Reap stuck PROCESSING snapshot comparisons (#116708)
NicoHinderling Jun 2, 2026
5ae1c61
fix(txn-summary): Clean up `getEAPTotalsEventView` (#116711)
mjq Jun 2, 2026
493aefc
fix(workflow): Fix type choices being a snapshot list of grouptype re…
Christinarlong Jun 2, 2026
d3f7d7c
Merge branch 'releases/26.5.2'
sentry-release-bot[bot] Jun 2, 2026
c3ab05c
meta: Bump new development version
sentry-release-bot[bot] Jun 2, 2026
1e76b08
feat(events): Add a log for query errors (#116696)
wmak Jun 2, 2026
9ecf796
chore(typing): Remove `sentry.search.events.builder.errors` from mypy…
shashjar Jun 2, 2026
762a7be
ref(cell): Cleans up import loops with apigateways (#116658)
GabeVillalobos Jun 2, 2026
4e8716f
Revert "ref(webhooks): Hide PLUGIN action type from available actions…
getsentry-bot Jun 2, 2026
7559e1a
ref(detectors): Remove unnessary parameters and interfaces (#116709)
cmanallen Jun 2, 2026
91845a3
ref(onboarding): Extract ScmIntegrationConnect from ScmConnect (#116581)
jaydgoss Jun 2, 2026
87464ea
fix(seer-activity): Use preferred detector instead of issue stream (#…
leeandher Jun 2, 2026
4163601
chore: Remove sentry_email model from schema (#116631)
markstory Jun 2, 2026
2cd98d9
Remove project dependency from performance detection utilities (#116373)
cmanallen Jun 2, 2026
131891a
chore(cells) Refactor region utils (#116697)
markstory Jun 2, 2026
62103a5
feat(issues): Improve merged issues drawer (#116634)
scttcper Jun 2, 2026
5134613
Update alerts.html (#116722)
elijames-codecov Jun 2, 2026
38963e4
chore(data-forwarding): Add a metric for non-scheduled for direct com…
leeandher Jun 2, 2026
ddc68d7
chore(seer-activity): update the data condition endpoint, revert-reve…
leeandher Jun 2, 2026
c79609a
feat(api): tighten Response annotation on 6 endpoints (no-cast subset…
azulus Jun 2, 2026
3e45c58
feat(webhooks): Add legacy-webhook-ui feature flag (#116731)
Christinarlong Jun 2, 2026
8fcc162
feat(preprod): Run snapshot odiff comparisons in parallel (#116712)
NicoHinderling Jun 2, 2026
f858076
feat(seer-activity): Add the frontend form for seer activity conditio…
leeandher Jun 2, 2026
f9cba3d
ref(flags): Graduate organizations:github-repo-auto-sync-webhook (#11…
wedamija Jun 2, 2026
8081842
feat(repositories): Auto-link new projects to repos via name matching…
wedamija Jun 2, 2026
5b01fef
ref(api): resolve UNKNOWN publish_status for release and deprecated e…
gricha Jun 2, 2026
db5b027
ref(source-maps): point source map debug at the canonical endpoint (#…
cvxluo Jun 2, 2026
47c5cc5
feat(cells): Wire devservices ingest path for cell-routing mode (#116…
lynnagara Jun 2, 2026
3983e4f
feat(api): tighten Response on 3 endpoints + add as_validation_errors…
azulus Jun 2, 2026
28741af
ci: Make jest matrix config dynamic for PR runs
ryan953 Jun 2, 2026
90a255f
Merge branch 'master' into ryan953/ci-jest-file-list
ryan953 Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .github/file-filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,6 @@ mdx_typecheckable: &mdx_typecheckable
- added|deleted|modified: 'static/app/components/core/**/*.{ts,tsx}'
- added|deleted|modified: 'static/**/__stories__/**/*.{ts,tsx}'

lintable_modified: &lintable_modified
- *sentry_frontend_workflow_file
- *sentry_frontend_snapshots_workflow_file
- added|modified: '**/*.{ts,tsx,js,jsx,mjs}'
- added|modified: 'static/**/*.{less,json,yml,md,mdx}'
- added|modified: '{vercel,tsconfig,biome,package}.json'

lintable_rules_changed: &lintable_rules_changed
- *sentry_frontend_workflow_file
- *sentry_frontend_snapshots_workflow_file
- added|modified: 'package.json'
- added|modified: '.github/file-filters.yml'
- added|modified: '*.config.ts'
- added|modified: 'static/eslint/**/*.{ts,tsx,js,jsx,mjs}'

# Trigger to apply the 'Scope: Frontend' label to PRs
frontend_all: &frontend_all
- *sentry_frontend_workflow_file
Expand Down
47 changes: 18 additions & 29 deletions .github/workflows/frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,10 @@ jobs:
testable_rules_changed: ${{ steps.changes.outputs.testable_rules_changed }}
typecheckable_rules_changed: ${{ steps.changes.outputs.typecheckable_rules_changed }}
mdx_typecheckable: ${{ steps.changes.outputs.mdx_typecheckable }}
lintable_modified: ${{ steps.changes.outputs.lintable_modified }}
lintable_modified_files: ${{ steps.changes.outputs.lintable_modified_files }}
lintable_rules_changed: ${{ steps.changes.outputs.lintable_rules_changed }}
frontend_all: ${{ steps.changes.outputs.frontend_all }}
frontend_all_files: ${{ steps.changes.outputs.frontend_all_files }}
merge_base: ${{ steps.merge_base.outputs.merge_base }}
merge_base_strategy: ${{ steps.merge_base.outputs.merge_base_strategy }}
jest_test_matrix: ${{ steps.jest_matrix_config.outputs.jest_test_matrix }}
jest_test_files: ${{ steps.jest_test_config.outputs.jest_test_files }}
jest_test_matrix: ${{ steps.jest_test_config.outputs.jest_test_matrix }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
Expand All @@ -53,8 +49,8 @@ jobs:
# Merge base of those two is what Jest --changedSince needs.
# If merge base can't be computed or non-frontend files changed, output is empty
# and the Jest job will run the full test suite instead.
- name: Get merge base for changedSince
id: merge_base
- name: Jest Test Config
id: jest_test_config
if: github.event_name == 'pull_request'
run: |
MERGE_BASE=$(git merge-base HEAD^1 HEAD^2 2>/dev/null) || true
Expand All @@ -72,16 +68,18 @@ jobs:
echo "Could not compute merge base — running full Jest suite"
STRATEGY="no_merge_base"
fi
echo "merge_base=${MERGE_BASE:-}" >> "$GITHUB_OUTPUT"
echo "merge_base_strategy=${STRATEGY}" >> "$GITHUB_OUTPUT"

- name: Jest Matrix Config
id: jest_matrix_config
run: |
RUNNERS=8
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shell variable $STRATEGY unavailable across workflow steps

High Severity

$STRATEGY is a shell variable set in the "Get merge base for changedSince" step's run block (lines 63/66/70), but it's referenced in the separate "List Jest tests" step's run block. Each GitHub Actions step runs in its own shell process, so $STRATEGY is always empty here. The changedSince branch is never taken, meaning the full test suite is always listed. The fix is to reference the step output via ${{ steps.merge_base.outputs.merge_base_strategy }}.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 5fbd253. Configure here.

if [ "${{ steps.merge_base.outputs.merge_base_strategy }}" == "changedSince" ]; then
RUNNERS=1
if [ "$STRATEGY" == "changedSince" ]; then
JEST_TESTS="$(jest --listTests --json --findRelatedTests ${{ steps.changes.outputs.frontend_all_files }} | jq -r '.')"Expand comment
else
JEST_TESTS="$(jest --listTests --json)"
fi
echo "jest_test_files=${JEST_TESTS}" >> "$GITHUB_OUTPUT"

# Divide jest_test_files_length by RUNNER_CHUNK_SIZE (rounded up)
RUNNER_CHUNK_SIZE=250
JEST_TESTS_LENGTH=${#JEST_TESTS[@]}
RUNNERS=$(( ( ( JEST_TESTS_LENGTH + RUNNER_CHUNK_SIZE - 1 ) / RUNNER_CHUNK_SIZE ) > 0 ? ( ( JEST_TESTS_LENGTH + RUNNER_CHUNK_SIZE - 1 ) / RUNNER_CHUNK_SIZE ) : 1 ))

INDEX_ARRAY=$(seq 0 $(( RUNNERS - 1 )) | jq -s .)
echo "jest_test_matrix=$(jq -nc --argjson index "$INDEX_ARRAY" --argjson total "$RUNNERS" '{index: $index, total: [$total]}')" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -144,15 +142,7 @@ jobs:

- name: eslint
id: eslint
env:
LINTABLE_RULES_CHANGED: ${{ needs.files-changed.outputs.lintable_rules_changed }}
LINTABLE_MODIFIED_FILES: ${{ needs.files-changed.outputs.lintable_modified_files }}
run: |
if [[ "$GITHUB_EVENT_NAME" == "pull_request" && "$LINTABLE_RULES_CHANGED" == "false" ]]; then
pnpm run lint:js $LINTABLE_MODIFIED_FILES
else
pnpm run lint:js
fi
run: pnpm run lint:js

knip:
if: needs.files-changed.outputs.frontend_all == 'true'
Expand Down Expand Up @@ -233,19 +223,18 @@ jobs:
GITHUB_PR_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
GITHUB_PR_REF: ${{ github.event.pull_request.head.ref || github.ref }}

JEST_TESTS: ${{ needs.files-changed.outputs.jest_test_files }}

# Disable testing-library from printing out any of of the DOM to
# stdout. No one actually looks through this in CI, they're just
# going to run it locally.
#
# This quiets up the logs quite a bit.
DEBUG_PRINT_LIMIT: 0

# When the "Frontend: Rerun Flaky Tests" label is on the PR,
# tests wrapped with it.isKnownFlake() run 50x to validate fixes.
RERUN_KNOWN_FLAKY_TESTS: "${{ contains(github.event.pull_request.labels.*.name, 'Frontend: Rerun Flaky Tests') }}"
# When set, Jest uses --changedSince to run only tests affected by this PR.
# Empty on master or when non-frontend files changed (falls back to full suite).
MERGE_BASE: ${{ needs.files-changed.outputs.merge_base }}
MERGE_BASE_STRATEGY: ${{ needs.files-changed.outputs.merge_base_strategy }}
run: pnpm run test-ci --forceExit

form-field-registry:
Expand Down
Loading
Loading