Skip to content

Commit 3991017

Browse files
authored
Merge branch 'develop' into lazarnikolov/js-2140-tanstack-start-tunnel-adapter
2 parents 08b4154 + 3332fec commit 3991017

File tree

141 files changed

+4048
-1366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+4048
-1366
lines changed

.github/FLAKY_CI_FAILURE_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: '[Flaky CI]: {{ env.JOB_NAME }}'
2+
title: '[Flaky CI]: {{ env.JOB_NAME }} - {{ env.TEST_NAME }}'
33
labels: Tests
44
---
55

@@ -13,7 +13,7 @@ Other / Unknown
1313

1414
### Name of Test
1515

16-
_Not available - check the run link for details_
16+
{{ env.TEST_NAME }}
1717

1818
### Link to Test Run
1919

.github/actions/install-playwright/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ runs:
1818
working-directory: ${{ inputs.cwd }}
1919

2020
- name: Restore cached playwright binaries
21-
uses: actions/cache/restore@v4
21+
uses: actions/cache/restore@v5
2222
id: playwright-cache
2323
with:
2424
path: |
@@ -43,7 +43,7 @@ runs:
4343

4444
# Only store cache on develop branch
4545
- name: Store cached playwright binaries
46-
uses: actions/cache/save@v4
46+
uses: actions/cache/save@v5
4747
if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
4848
with:
4949
path: |

.github/actions/restore-cache/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ runs:
1111
steps:
1212
- name: Check dependency cache
1313
id: dep-cache
14-
uses: actions/cache/restore@v4
14+
uses: actions/cache/restore@v5
1515
with:
1616
path: ${{ env.CACHED_DEPENDENCY_PATHS }}
1717
key: ${{ inputs.dependency_cache_key }}
1818

1919
- name: Restore build artifacts
20-
uses: actions/download-artifact@v4
20+
uses: actions/download-artifact@v7
2121
with:
2222
name: build-output
2323

.github/workflows/build.yml

Lines changed: 39 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ jobs:
158158
changed_bun:
159159
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
160160
'@sentry/bun') }}
161+
changed_bun_integration:
162+
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
163+
'@sentry-internal/bun-integration-tests') }}
161164
changed_browser_integration:
162165
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
163166
'@sentry-internal/browser-integration-tests') }}
@@ -769,6 +772,32 @@ jobs:
769772
working-directory: dev-packages/cloudflare-integration-tests
770773
run: yarn test
771774

775+
job_bun_integration_tests:
776+
name: Bun Integration Tests
777+
needs: [job_get_metadata, job_build]
778+
if: needs.job_build.outputs.changed_bun_integration == 'true' || github.event_name != 'pull_request'
779+
runs-on: ubuntu-24.04
780+
timeout-minutes: 15
781+
steps:
782+
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
783+
uses: actions/checkout@v6
784+
with:
785+
ref: ${{ env.HEAD_COMMIT }}
786+
- name: Set up Node
787+
uses: actions/setup-node@v6
788+
with:
789+
node-version-file: 'package.json'
790+
- name: Set up Bun
791+
uses: oven-sh/setup-bun@v2
792+
- name: Restore caches
793+
uses: ./.github/actions/restore-cache
794+
with:
795+
dependency_cache_key: ${{ needs.job_build.outputs.dependency_cache_key }}
796+
797+
- name: Run integration tests
798+
working-directory: dev-packages/bun-integration-tests
799+
run: yarn test
800+
772801
job_remix_integration_tests:
773802
name: Remix (Node ${{ matrix.node }}) Tests
774803
needs: [job_get_metadata, job_build]
@@ -910,7 +939,7 @@ jobs:
910939
use-installer: true
911940
token: ${{ secrets.GITHUB_TOKEN }}
912941
- name: Set up Deno
913-
if: matrix.test-application == 'deno'
942+
if: matrix.test-application == 'deno' || matrix.test-application == 'deno-streamed'
914943
uses: denoland/setup-deno@v2.0.3
915944
with:
916945
deno-version: v2.1.5
@@ -930,20 +959,13 @@ jobs:
930959
if: steps.restore-tarball-cache.outputs.cache-hit != 'true'
931960
run: yarn build:tarball
932961

933-
- name: Get node version
934-
id: versions
935-
run: |
936-
echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
937-
938962
- name: Validate Verdaccio
939963
run: yarn test:validate
940964
working-directory: dev-packages/e2e-tests
941965

942966
- name: Prepare Verdaccio
943967
run: yarn test:prepare
944968
working-directory: dev-packages/e2e-tests
945-
env:
946-
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION: ${{ steps.versions.outputs.node }}
947969

948970
- name: Copy to temp
949971
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
@@ -1047,20 +1069,13 @@ jobs:
10471069
if: steps.restore-tarball-cache.outputs.cache-hit != 'true'
10481070
run: yarn build:tarball
10491071

1050-
- name: Get node version
1051-
id: versions
1052-
run: |
1053-
echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
1054-
10551072
- name: Validate Verdaccio
10561073
run: yarn test:validate
10571074
working-directory: dev-packages/e2e-tests
10581075

10591076
- name: Prepare Verdaccio
10601077
run: yarn test:prepare
10611078
working-directory: dev-packages/e2e-tests
1062-
env:
1063-
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION: ${{ steps.versions.outputs.node }}
10641079

10651080
- name: Copy to temp
10661081
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
@@ -1109,6 +1124,7 @@ jobs:
11091124
job_node_integration_tests,
11101125
job_node_core_integration_tests,
11111126
job_cloudflare_integration_tests,
1127+
job_bun_integration_tests,
11121128
job_browser_playwright_tests,
11131129
job_browser_loader_tests,
11141130
job_remix_integration_tests,
@@ -1125,82 +1141,25 @@ jobs:
11251141
runs-on: ubuntu-24.04
11261142
permissions:
11271143
issues: write
1144+
checks: read
11281145
steps:
11291146
- name: Check out current commit
11301147
if: github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
11311148
uses: actions/checkout@v6
11321149
with:
1133-
sparse-checkout: .github
1150+
sparse-checkout: |
1151+
.github
1152+
scripts
11341153
11351154
- name: Create issues for failed jobs
11361155
if: github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
11371156
uses: actions/github-script@v7
11381157
with:
11391158
script: |
1140-
const fs = require('fs');
1141-
1142-
// Fetch actual job details from the API to get descriptive names
1143-
const jobs = await github.paginate(github.rest.actions.listJobsForWorkflowRun, {
1144-
owner: context.repo.owner,
1145-
repo: context.repo.repo,
1146-
run_id: context.runId,
1147-
per_page: 100
1148-
});
1149-
1150-
const failedJobs = jobs.filter(job => job.conclusion === 'failure');
1151-
1152-
if (failedJobs.length === 0) {
1153-
console.log('No failed jobs found');
1154-
return;
1155-
}
1156-
1157-
// Read and parse template
1158-
const template = fs.readFileSync('.github/FLAKY_CI_FAILURE_TEMPLATE.md', 'utf8');
1159-
const [, frontmatter, bodyTemplate] = template.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
1160-
1161-
// Get existing open issues with Tests label
1162-
const existing = await github.paginate(github.rest.issues.listForRepo, {
1163-
owner: context.repo.owner,
1164-
repo: context.repo.repo,
1165-
state: 'open',
1166-
labels: 'Tests',
1167-
per_page: 100
1168-
});
1169-
1170-
for (const job of failedJobs) {
1171-
const jobName = job.name;
1172-
const jobUrl = job.html_url;
1173-
1174-
// Replace template variables
1175-
const vars = {
1176-
'JOB_NAME': jobName,
1177-
'RUN_LINK': jobUrl
1178-
};
1179-
1180-
let title = frontmatter.match(/title:\s*'(.*)'/)[1];
1181-
let issueBody = bodyTemplate;
1182-
for (const [key, value] of Object.entries(vars)) {
1183-
const pattern = new RegExp(`\\{\\{\\s*env\\.${key}\\s*\\}\\}`, 'g');
1184-
title = title.replace(pattern, value);
1185-
issueBody = issueBody.replace(pattern, value);
1186-
}
1187-
1188-
const existingIssue = existing.find(i => i.title === title);
1189-
1190-
if (existingIssue) {
1191-
console.log(`Issue already exists for ${jobName}: #${existingIssue.number}`);
1192-
continue;
1193-
}
1194-
1195-
const newIssue = await github.rest.issues.create({
1196-
owner: context.repo.owner,
1197-
repo: context.repo.repo,
1198-
title: title,
1199-
body: issueBody.trim(),
1200-
labels: ['Tests']
1201-
});
1202-
console.log(`Created issue #${newIssue.data.number} for ${jobName}`);
1203-
}
1159+
const { default: run } = await import(
1160+
`${process.env.GITHUB_WORKSPACE}/scripts/report-ci-failures.mjs`
1161+
);
1162+
await run({ github, context, core });
12041163
12051164
- name: Check for failures
12061165
if: cancelled() || contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')

.github/workflows/canary.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -140,20 +140,13 @@ jobs:
140140
path: ${{ env.CACHED_BUILD_PATHS }}
141141
key: canary-${{ env.HEAD_COMMIT }}
142142

143-
- name: Get node version
144-
id: versions
145-
run: |
146-
echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
147-
148143
- name: Validate Verdaccio
149144
run: yarn test:validate
150145
working-directory: dev-packages/e2e-tests
151146

152147
- name: Prepare Verdaccio
153148
run: yarn test:prepare
154149
working-directory: dev-packages/e2e-tests
155-
env:
156-
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION: ${{ steps.versions.outputs.node }}
157150

158151
- name: Copy to temp
159152
run: yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application

.github/workflows/changelog-preview.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

.github/workflows/ci-metadata.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ jobs:
7070
any_code:
7171
- '!**/*.md'
7272
73-
- name: Get PR labels
74-
id: pr-labels
75-
uses: mydea/pr-labels-action@fn/bump-node20
76-
7773
outputs:
7874
commit_label: '${{ env.COMMIT_SHA }}: ${{ env.COMMIT_MESSAGE }}'
7975
# Note: These next three have to be checked as strings ('true'/'false')!
@@ -86,7 +82,8 @@ jobs:
8682
# When merging into master, or from master
8783
is_gitflow_sync: ${{ github.head_ref == 'master' || github.ref == 'refs/heads/master' }}
8884
has_gitflow_label:
89-
${{ github.event_name == 'pull_request' && contains(steps.pr-labels.outputs.labels, ' Gitflow ') }}
85+
${{ github.event_name == 'pull_request' && contains(toJSON(github.event.pull_request.labels.*.name), 'Gitflow')
86+
}}
9087
force_skip_cache:
9188
${{ github.event_name == 'schedule' || (github.event_name == 'pull_request' &&
92-
contains(steps.pr-labels.outputs.labels, ' ci-skip-cache ')) }}
89+
contains(toJSON(github.event.pull_request.labels.*.name), 'ci-skip-cache')) }}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: 'PR: Review Reminder'
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
# Run on weekdays at 10:00 AM UTC. No new reminders can fire on weekends because
7+
# Saturday/Sunday are never counted as business days.
8+
- cron: '0 10 * * 1-5'
9+
10+
# pulls.* list + listRequestedReviewers → pull-requests: read
11+
# issues timeline + comments + createComment → issues: write
12+
# repos.listCollaborators (outside) → Metadata read on the token (see GitHub App permission map)
13+
# checkout → contents: read
14+
permissions:
15+
contents: read
16+
issues: write
17+
pull-requests: read
18+
19+
concurrency:
20+
group: ${{ github.workflow }}
21+
cancel-in-progress: false
22+
23+
jobs:
24+
remind-reviewers:
25+
# `schedule` has no `repository` on github.event; forks must be skipped only for workflow_dispatch.
26+
if: github.event_name == 'schedule' || github.event.repository.fork != true
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v4
31+
32+
- name: Remind pending reviewers
33+
uses: actions/github-script@v7
34+
with:
35+
script: |
36+
const { default: run } = await import(
37+
`${process.env.GITHUB_WORKSPACE}/scripts/pr-review-reminder.mjs`
38+
);
39+
await run({ github, context, core });

.size-limit.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ module.exports = [
234234
path: createCDNPath('bundle.min.js'),
235235
gzip: false,
236236
brotli: false,
237-
limit: '83 KB',
237+
limit: '83.5 KB',
238238
},
239239
{
240240
name: 'CDN Bundle (incl. Tracing) - uncompressed',
@@ -269,7 +269,7 @@ module.exports = [
269269
path: createCDNPath('bundle.tracing.replay.min.js'),
270270
gzip: false,
271271
brotli: false,
272-
limit: '247 KB',
272+
limit: '248 KB',
273273
},
274274
{
275275
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed',

dev-packages/browser-integration-tests/playwright.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const config: PlaywrightTestConfig = {
3030
},
3131
],
3232

33-
reporter: process.env.CI ? [['list'], ['junit', { outputFile: 'results.junit.xml' }]] : 'list',
33+
reporter: process.env.CI ? [['list'], ['github'], ['junit', { outputFile: 'results.junit.xml' }]] : 'list',
3434

3535
globalSetup: require.resolve('./playwright.setup.ts'),
3636
globalTeardown: require.resolve('./playwright.teardown.ts'),

0 commit comments

Comments
 (0)