Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
7bc760f
refactor(plugin-react-navigation): extract span tracking logic out to…
yousif-bugsnag May 1, 2025
ba53640
feat(plugin-react-navigation): add registerNavigationContainerRef
yousif-bugsnag May 1, 2025
839a25b
refactor(plugin-react-navigation): replace NavigationContextProvider …
yousif-bugsnag May 14, 2025
b9e6a32
fix(plugin-react-navigation): set the initial route when the navigati…
yousif-bugsnag May 15, 2025
bd4df36
test(react-native-navigation): add expo router e2e tests
yousif-bugsnag May 15, 2025
351703f
test(react-native-navigation): test CompleteNavigation components wit…
yousif-bugsnag May 15, 2025
4f5b58d
fix(react-native-navigation): only set the initial route name if the …
yousif-bugsnag May 16, 2025
c3f0dcb
test(react-native-navigation): add some more unit test cases
yousif-bugsnag May 16, 2025
38fd0c8
chore(plugin-react-navigation): remove deleted navigation-context.tsx…
yousif-bugsnag May 16, 2025
b619ec0
ci(react-native): update change detection for expo pipeline
yousif-bugsnag May 16, 2025
cb083c2
refactor(plugin-react-navigation): dedupe type definition
yousif-bugsnag May 16, 2025
a203215
Create codeql.yml
tomlongridge May 16, 2025
8f80554
Merge pull request #627 from bugsnag/tom/code-ql
tomlongridge May 16, 2025
63d3615
fix(scenario-launcher): conditional packing and dependencies based on…
yousif-bugsnag May 16, 2025
b806665
simplify conditional packaging
yousif-bugsnag May 16, 2025
9b188b9
add ScenarioLauncher.podspec
yousif-bugsnag May 16, 2025
8bc5e70
build(deps): bump github/codeql-action from 3.28.13 to 3.28.18
dependabot[bot] May 19, 2025
454ce19
Merge pull request #625 from bugsnag/main
yousif-bugsnag May 19, 2025
677d0d4
Trial build
May 19, 2025
aca88ea
Correction
May 19, 2025
a6f9930
fix complete-navigation component
yousif-bugsnag May 19, 2025
8cf3ae5
fix react imports in plugin
yousif-bugsnag May 19, 2025
6a5658d
Run MR job
May 19, 2025
eea232f
Attempt to unzip artifact
May 19, 2025
06944d9
Skip upload for now
May 19, 2025
1d69dab
Try with stars in path
May 19, 2025
dd11583
Try metahook
May 19, 2025
f66f374
pre-exit?
May 19, 2025
5b4b3b9
Post artifact
May 19, 2025
8445fa6
Paths and use command hook
May 19, 2025
a0033e4
Pre-command
May 19, 2025
9c736a0
SKIP_BUILD_PACKAGES
May 19, 2025
524f1a8
Also need browser version file
May 19, 2025
a767bc1
Distinct names
May 19, 2025
740211a
Rollout
May 19, 2025
376d427
Use BUILD_MODE throughout
May 20, 2025
2de4b3b
Corrections
May 20, 2025
30a2ee8
Download fixtures
May 20, 2025
5767e10
Corrections
May 20, 2025
b5a4bc3
test(plugin-react-navigation): remove TODO
yousif-bugsnag May 21, 2025
36fb042
Merge pull request #626 from bugsnag/PLAT-14139/expo-router
yousif-bugsnag May 22, 2025
bb68679
fix: fix issue with release script causing unnecessary package-lock c…
yousif-bugsnag May 22, 2025
a428e07
Merge pull request #629 from bugsnag/tms/browser-fixtures
twometresteve May 22, 2025
4626852
feat: add `onSpanStart` callbacks (#631)
yousif-bugsnag May 27, 2025
7cae696
build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2
dependabot[bot] Jun 2, 2025
86b97b4
Merge pull request #635 from bugsnag/dependabot/github_actions/ossf/s…
dependabot[bot] Jun 3, 2025
8617268
Merge pull request #628 from bugsnag/dependabot/github_actions/github…
dependabot[bot] Jun 3, 2025
fd82fad
build(deps): bump actions/setup-node from 4.3.0 to 4.4.0
dependabot[bot] Jun 3, 2025
7fd8433
Merge pull request #612 from bugsnag/dependabot/github_actions/action…
dependabot[bot] Jun 3, 2025
7f4f55f
build(deps): bump github/codeql-action from 3.28.18 to 3.28.19
dependabot[bot] Jun 9, 2025
463e34a
Merge pull request #637 from bugsnag/dependabot/github_actions/github…
dependabot[bot] Jun 9, 2025
40da833
Remove undefined variable
Jun 10, 2025
952f053
Add svelte kit routing provider (#632)
gingerbenw Jun 11, 2025
1e48ccd
Merge pull request #640 from bugsnag/tms/undef-var
twometresteve Jun 11, 2025
a2435a1
Set default endpoints based on API key (#643)
richardelms Jun 25, 2025
c8078f4
feat: add `SpanControlProvider` and `BugsnagPerformance.getSpanContro…
yousif-bugsnag Jun 2, 2025
6d2f971
feat(remote-spans): added a new `plugin-react-native-remote-spans` mo…
lemnik May 29, 2025
ae22609
feat(android): add support for remote control of spans on android
lemnik Jun 3, 2025
7b66376
chore(remote-spans): fixed imports
lemnik Jun 4, 2025
eda33cb
fix(remote-spans): simplified the remote endTime sending, removing th…
lemnik Jun 4, 2025
790a4bc
refactor: update `Plugin` interface and introduce `PluginContext` (#638)
yousif-bugsnag Jun 10, 2025
edd6779
refactor: move `toUnixNanoseconds` to core clock interface
yousif-bugsnag Jun 9, 2025
354d594
feat: add `BugsnagRemoteSpansPlugin` and use unix nanosecond end time…
yousif-bugsnag Jun 9, 2025
3000238
feat(react-native): add BugsnagNamedSpansPlugin package
yousif-bugsnag Jun 17, 2025
05f65a0
test: add named spans plugin e2e tests
yousif-bugsnag Jun 17, 2025
6d2824e
refactor: return `Span`s from `SpanControlProvider` and validate span…
yousif-bugsnag Jun 17, 2025
0dba92d
test(react-native): better support for starting and ending native spa…
yousif-bugsnag Jun 12, 2025
432c5f7
test(remote-spans): add remote span plugin test scenario
yousif-bugsnag Jun 12, 2025
200b68d
test(react-native): use android performance integration branch
yousif-bugsnag Jun 12, 2025
a42956b
fix: fix remote spans ios module
yousif-bugsnag Jun 17, 2025
4ee6717
feat: make remote spans iOS module old-arch compatible
yousif-bugsnag Jun 18, 2025
f2d0a7d
test(react-native): only include native integration scenarios for nat…
yousif-bugsnag Jun 18, 2025
9023c07
test(react-native): temporarily disable RNN and expo tests
yousif-bugsnag Jun 18, 2025
986a7ad
feat(remote spans): started adding support for ReactNative RemoteSpan…
lemnik Jun 17, 2025
e5cbe2b
refactor(remote-spans): reworked the plugin-react-native-remote-spans…
lemnik Jun 18, 2025
0145c96
refactor(remote-spans): added the 10 minute timeout to BugsnagRemoteS…
lemnik Jun 19, 2025
df10c9f
test(remote-spans): enable OldArch & iOS for the remote spans tests
lemnik Jun 19, 2025
6980029
fix(new-arch): aligned the `endTime` on iOS and Android
lemnik Jun 19, 2025
5b7727c
fix(new-arch): normalise attributes from ReactNative
lemnik Jun 19, 2025
6146d2c
refactor(native-spans): renamed the "remote spans" module as "native …
lemnik Jun 20, 2025
389a942
refactor(native-spans): renamed the plugin-react-native-native-spans …
lemnik Jun 20, 2025
47e8d24
chore: bump android performance dependencies to 1.16.0
yousif-bugsnag Jun 24, 2025
9740c3b
test: reinstate skipped tests
yousif-bugsnag Jun 24, 2025
e2f5024
chore: add xcodeproj to span access plugin for older versions of RN
yousif-bugsnag Jun 24, 2025
a21d200
fix(plugin-react-native-span-access): add getName override to Android…
yousif-bugsnag Jun 24, 2025
19b8660
test(react-native-navigation): update kotlin version to match Android…
yousif-bugsnag Jun 24, 2025
28544a5
chore: add AndroidManifest.xml file for react-native-span-access package
yousif-bugsnag Jun 25, 2025
f0753e3
fix(java7): replace the method-refs with anonymous classes for backwa…
lemnik Jun 25, 2025
2d9a6e8
(docs) update CHANGELOG
yousif-bugsnag Jun 25, 2025
eef2cb7
Merge pull request #648 from bugsnag/integration/span-controls
yousif-bugsnag Jun 25, 2025
5798500
docs: release v2.14.0
yousif-bugsnag Jun 25, 2025
2152d90
ci: fix named spans cdn build
yousif-bugsnag Jun 25, 2025
26f0761
ci: add clean script for svelte fixture
yousif-bugsnag Jun 25, 2025
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
2 changes: 1 addition & 1 deletion .buildkite/browser-pipeline.block.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ steps:
agents:
queue: macos
timeout_in_minutes: 2
command: buildkite-agent pipeline upload .buildkite/browser-pipeline.yml
command: BUILD_MODE=NPM buildkite-agent pipeline upload .buildkite/browser-pipeline.yml
2 changes: 1 addition & 1 deletion .buildkite/browser-pipeline.full.block.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ steps:
agents:
queue: macos
timeout_in_minutes: 2
command: buildkite-agent pipeline upload .buildkite/browser-pipeline.full.yml
command: BUILD_MODE=NPM buildkite-agent pipeline upload .buildkite/browser-pipeline.full.yml
34 changes: 12 additions & 22 deletions .buildkite/browser-pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,42 @@ agents:
steps:
- group: "Browser Tests"
steps:
- label: ":docker: Build BrowserStack Maze Runner image"
key: "browser-maze-runner-bs"
timeout_in_minutes: 20
plugins:
- docker-compose#v4.12.0:
build: browser-maze-runner-bs
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
cache-from: browser-maze-runner-bs:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
- docker-compose#v4.12.0:
push: browser-maze-runner-bs:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
env:
USE_CDN_BUILD: "${USE_CDN_BUILD}"
retry:
automatic:
- exit_status: "*"
limit: 1

- label: ":browserstack: {{ matrix }} Mobile Browser tests"
matrix:
- android_13
- ios_13
- ios_18
depends_on: "browser-maze-runner-bs"
depends_on: "build-browser-fixtures-NPM"
timeout_in_minutes: 30
plugins:
artifacts#v1.9.4:
download:
- "fixture-packages-NPM.zip"
- from: "test/browser/features/fixtures/.bugsnag-browser-version-NPM"
to: "test/browser/features/fixtures/.bugsnag-browser-version"
upload:
- "./test/browser/maze_output/failed/**/*"
improbable-eng/metahook:
pre-command: "unzip -o fixture-packages-${BUILD_MODE}.zip"
docker-compose#v4.12.0:
pull: browser-maze-runner-bs
run: browser-maze-runner-bs
use-aliases: true
command:
- --farm=bs
- --browser={{ matrix }}
artifacts#v1.5.0:
upload:
- "./test/browser/maze_output/failed/**/*"
test-collector#v1.10.2:
files: "reports/TEST-*.xml"
format: "junit"
branch: "^main|next$$"
api-token-env-name: "BROWSER_PERFORMANCE_BUILDKITE_ANALYTICS_TOKEN"
concurrency: 2
concurrency_group: "browserstack"
concurrency_method: eager

- label: ":pipeline_upload: Basic browser pipeline with CDN build"
agents:
queue: "macos"
timeout_in_minutes: 2
commands:
- USE_CDN_BUILD=1 EXTRA_STEP_LABEL=" (CDN)" buildkite-agent pipeline upload .buildkite/browser-pipeline.yml
- BUILD_MODE=CDN buildkite-agent pipeline upload .buildkite/browser-pipeline.yml
92 changes: 51 additions & 41 deletions .buildkite/browser-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,45 @@ agents:
steps:
- group: "Browser Tests"
steps:
- label: ":docker: Build BitBar Maze Runner image${EXTRA_STEP_LABEL}"
key: "browser-maze-runner-bb-${USE_CDN_BUILD}"
timeout_in_minutes: 20
plugins:
- docker-compose#v4.12.0:
build: browser-maze-runner-bb
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
cache-from: browser-maze-runner-bb:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
- docker-compose#v4.12.0:
push: browser-maze-runner-bb:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
env:
USE_CDN_BUILD: "${USE_CDN_BUILD}"
retry:
automatic:
- exit_status: "*"
limit: 1

- label: ":docker: Build BrowserStack Maze Runner image${EXTRA_STEP_LABEL}"
key: "browser-maze-runner-bs-${USE_CDN_BUILD}"
- label: "Build browser fixtures - ${BUILD_MODE}"
key: "build-browser-fixtures-${BUILD_MODE}"
timeout_in_minutes: 20
plugins:
- docker-compose#v4.12.0:
build: browser-maze-runner-bs
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/js
cache-from: browser-maze-runner-bs:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
- docker-compose#v4.12.0:
push: browser-maze-runner-bs:855461928731.dkr.ecr.us-west-1.amazonaws.com/js:performance-ci-browser-${BRANCH_NAME}-${USE_CDN_BUILD}
agents:
queue: macos-14
env:
USE_CDN_BUILD: "${USE_CDN_BUILD}"
BUILD_MODE: "${BUILD_MODE}"
SKIP_FIXTURE_CLEANUP: "true"
plugins:
artifacts#v1.9.4:
upload:
- "fixture-packages-${BUILD_MODE}.zip"
- from: "test/browser/features/fixtures/.bugsnag-browser-version"
to: "test/browser/features/fixtures/.bugsnag-browser-version-${BUILD_MODE}"
commands:
- cd ./test/browser
- npm ci
- ruby ./features/support/build-packages.rb
- cd ../..
- zip -r fixture-packages-${BUILD_MODE}.zip test/browser/features/fixtures/packages
retry:
automatic:
- exit_status: "*"
limit: 1

# BitBar
- label: ":bitbar: :{{ matrix.browser }}: {{ matrix.version }} tests${EXTRA_STEP_LABEL}"
depends_on: "browser-maze-runner-bb-${USE_CDN_BUILD}"
- label: ":bitbar: :{{ matrix.browser }}: {{ matrix.version }} tests - ${BUILD_MODE}"
depends_on: "build-browser-fixtures-${BUILD_MODE}"
timeout_in_minutes: 30
plugins:
artifacts#v1.9.4:
download:
- "fixture-packages-${BUILD_MODE}.zip"
- from: "test/browser/features/fixtures/.bugsnag-browser-version-${BUILD_MODE}"
to: "test/browser/features/fixtures/.bugsnag-browser-version"
upload: "./test/browser/maze_output/failed/**/*"
improbable-eng/metahook:
pre-command: "unzip -o fixture-packages-${BUILD_MODE}.zip"
docker-compose#v4.12.0:
pull: browser-maze-runner-bb
run: browser-maze-runner-bb
Expand All @@ -55,16 +55,14 @@ steps:
- --appium-version=1.22
- --aws-public-ip
- --no-tunnel
artifacts#v1.5.0:
upload:
- "./test/browser/maze_output/failed/**/*"
test-collector#v1.10.2:
files: "reports/TEST-*.xml"
format: "junit"
branch: "^main|next$$"
api-token-env-name: "BROWSER_PERFORMANCE_BUILDKITE_ANALYTICS_TOKEN"
concurrency: 25
concurrency_group: "bitbar"
concurrency_method: eager
matrix:
setup:
browser: [chrome, firefox]
Expand All @@ -73,10 +71,18 @@ steps:
- with: { browser: safari, version: 18 }

# BrowserStack
- label: ":browserstack: :{{ matrix.browser }}: {{ matrix.version }} Browser tests${EXTRA_STEP_LABEL}"
depends_on: "browser-maze-runner-bs-${USE_CDN_BUILD}"
- label: ":browserstack: :{{ matrix.browser }}: {{ matrix.version }} Browser tests - ${BUILD_MODE}"
depends_on: "build-browser-fixtures-${BUILD_MODE}"
timeout_in_minutes: 30
plugins:
artifacts#v1.9.4:
download:
- "fixture-packages-${BUILD_MODE}.zip"
- from: "test/browser/features/fixtures/.bugsnag-browser-version-${BUILD_MODE}"
to: "test/browser/features/fixtures/.bugsnag-browser-version"
upload: "./test/browser/maze_output/failed/**/*"
improbable-eng/metahook:
pre-command: "unzip -o fixture-packages-${BUILD_MODE}.zip"
docker-compose#v4.12.0:
pull: browser-maze-runner-bs
run: browser-maze-runner-bs
Expand All @@ -85,16 +91,14 @@ steps:
- --https
- --farm=bs
- --browser={{ matrix.browser }}_{{ matrix.version }}
artifacts#v1.5.0:
upload:
- "./test/browser/maze_output/failed/**/*"
test-collector#v1.10.2:
files: "reports/TEST-*.xml"
format: "junit"
branch: "^main|next$$"
api-token-env-name: "BROWSER_PERFORMANCE_BUILDKITE_ANALYTICS_TOKEN"
concurrency: 2
concurrency_group: "browserstack"
concurrency_method: eager
matrix:
setup:
browser: [chrome]
Expand All @@ -105,27 +109,33 @@ steps:
- with: { browser: edge, version: latest }

# BrowserStack non-https
- label: ":browserstack: :{{ matrix.browser }}: {{ matrix.version }} Browser non-https tests${EXTRA_STEP_LABEL}"
depends_on: "browser-maze-runner-bs-${USE_CDN_BUILD}"
- label: ":browserstack: :{{ matrix.browser }}: {{ matrix.version }} Browser non-https tests - ${BUILD_MODE}"
depends_on: "build-browser-fixtures-${BUILD_MODE}"
timeout_in_minutes: 30
plugins:
artifacts#v1.9.4:
download:
- "fixture-packages-${BUILD_MODE}.zip"
- from: "test/browser/features/fixtures/.bugsnag-browser-version-${BUILD_MODE}"
to: "test/browser/features/fixtures/.bugsnag-browser-version"
upload: "./test/browser/maze_output/failed/**/*"
improbable-eng/metahook:
pre-command: "unzip -o fixture-packages-${BUILD_MODE}.zip"
docker-compose#v4.12.0:
pull: browser-maze-runner-bs
run: browser-maze-runner-bs
use-aliases: true
command:
- --farm=bs
- --browser={{ matrix.browser }}_{{ matrix.version }}
artifacts#v1.5.0:
upload:
- "./test/browser/maze_output/failed/**/*"
test-collector#v1.10.2:
files: "reports/TEST-*.xml"
format: "junit"
branch: "^main|next$$"
api-token-env-name: "BROWSER_PERFORMANCE_BUILDKITE_ANALYTICS_TOKEN"
concurrency: 2
concurrency_group: "browserstack"
concurrency_method: eager
matrix:
setup:
browser: [safari]
Expand Down
25 changes: 20 additions & 5 deletions .buildkite/scripts/packages.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[
{
"pipeline": ".buildkite/browser-pipeline.yml",
"environment": "BUILD_MODE=NPM",
"block": ".buildkite/browser-pipeline.block.yml",
"paths": [
"test/browser",
Expand All @@ -11,11 +12,14 @@
"packages/angular",
"packages/react-router",
"packages/vue",
"packages/plugin-react-performance"
"packages/plugin-react-performance",
"packages/svelte-kit",
"packages/plugin-named-spans"
]
},
{
"pipeline": ".buildkite/browser-pipeline.full.yml",
"environment": "BUILD_MODE=NPM",
"block": ".buildkite/browser-pipeline.full.block.yml",
"paths": []
},
Expand All @@ -28,7 +32,9 @@
"packages/platforms/react-native",
"packages/delivery-fetch",
"packages/request-tracker",
"packages/plugin-react-navigation"
"packages/plugin-react-navigation",
"packages/plugin-react-native-span-access",
"packages/plugin-named-spans"
]
},
{
Expand All @@ -45,7 +51,8 @@
"packages/platforms/react-native",
"packages/delivery-fetch",
"packages/request-tracker",
"packages/plugin-react-native-navigation"
"packages/plugin-react-native-navigation",
"packages/plugin-react-native-span-access"
]
},
{
Expand All @@ -56,11 +63,19 @@
{
"pipeline": ".buildkite/expo-pipeline.yml",
"block": ".buildkite/expo-pipeline.block.yml",
"paths": []
"paths": [
"test/react-native",
"packages/core",
"packages/platforms/react-native",
"packages/delivery-fetch",
"packages/request-tracker",
"packages/plugin-react-navigation",
"packages/plugin-react-native-span-access"
]
},
{
"pipeline": ".buildkite/expo-pipeline.full.yml",
"block": ".buildkite/expo-pipeline.full.block.yml",
"paths": []
}
]
]
17 changes: 12 additions & 5 deletions .buildkite/scripts/pipeline-trigger.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@ if (baseBranch) {
execSync(`git --no-pager diff --name-only origin/${baseBranch}`, { stdio: 'inherit' });
}

packages.reverse().forEach(({ paths, block, pipeline }) => {
packages.reverse().forEach(({ paths, block, pipeline, environment, skip }) => {
let upload = false;
const env = environment || "";

if (skip) {
console.log(`Skipping pipeline ${pipeline} as per configuration.`);
return;
}

// Upload all pipelines if specified in the commit message
if (commitMessage.includes("[full ci]") ||
["next", "main"].includes(currentBranch) ||
["main"].includes(baseBranch)) {
console.log(`Upload pipeline file: ${pipeline}`);
execSync(`buildkite-agent pipeline upload ${pipeline}`);
console.log(`Upload pipeline file: ${pipeline} with environment: '${env}'`);
execSync(`${env} buildkite-agent pipeline upload ${pipeline}`);
return;
}

Expand Down Expand Up @@ -54,8 +61,8 @@ packages.reverse().forEach(({ paths, block, pipeline }) => {
}

if (upload) {
console.log(`Upload pipeline file: ${pipeline}`);
execSync(`buildkite-agent pipeline upload ${pipeline}`);
console.log(`Upload pipeline file: ${pipeline} with environment: '${env}'`);
execSync(`${env} buildkite-agent pipeline upload ${pipeline}`);
} else {
console.log(`Upload blocker file: ${block}`);
execSync(`buildkite-agent pipeline upload ${block}`);
Expand Down
Loading