Skip to content

Commit 6ea9981

Browse files
committed
Add opentelemetry-v2-tests dev-packages and ensure they pass with Otel v1 deps
1 parent 22d5385 commit 6ea9981

32 files changed

+6769
-1
lines changed

.github/workflows/build.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ jobs:
196196
changed_node_integration:
197197
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
198198
'@sentry-internal/node-integration-tests') }}
199+
changed_opentelemetry:
200+
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
201+
'@sentry/opentelemetry') }}
199202
changed_remix:
200203
${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
201204
'@sentry/remix') }}
@@ -751,6 +754,42 @@ jobs:
751754
directory: dev-packages/node-integration-tests
752755
token: ${{ secrets.CODECOV_TOKEN }}
753756

757+
job_opentelemetry_v2_tests:
758+
name: '@sentry/opentelemetry with OpenTelemetry v2 (Node ${{ matrix.node }}) Tests'
759+
needs: [job_get_metadata, job_build]
760+
if: needs.job_build.outputs.changed_opentelemetry == 'true' || github.event_name != 'pull_request'
761+
runs-on: ubuntu-24.04
762+
timeout-minutes: 10
763+
strategy:
764+
fail-fast: false
765+
matrix:
766+
node: [18, 20, 22]
767+
steps:
768+
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
769+
uses: actions/checkout@v4
770+
with:
771+
ref: ${{ env.HEAD_COMMIT }}
772+
- name: Set up Node
773+
uses: actions/setup-node@v4
774+
with:
775+
node-version: ${{ matrix.node }}
776+
- name: Restore caches
777+
uses: ./.github/actions/restore-cache
778+
with:
779+
dependency_cache_key: ${{ needs.job_build.outputs.dependency_cache_key }}
780+
781+
- name: Run unit tests
782+
working-directory: dev-packages/opentelemetry-v2-tests
783+
run: yarn test
784+
785+
- name: Upload test results to Codecov
786+
if: cancelled() == false
787+
continue-on-error: true
788+
uses: codecov/test-results-action@v1
789+
with:
790+
directory: dev-packages/opentelemetry-v2-tests
791+
token: ${{ secrets.CODECOV_TOKEN }}
792+
754793
job_remix_integration_tests:
755794
name: Remix (Node ${{ matrix.node }}) Tests
756795
needs: [job_get_metadata, job_build]
@@ -1094,6 +1133,7 @@ jobs:
10941133
job_node_integration_tests,
10951134
job_browser_playwright_tests,
10961135
job_browser_loader_tests,
1136+
job_opentelemetry_v2_tests,
10971137
job_remix_integration_tests,
10981138
job_e2e_tests,
10991139
job_artifacts,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
env: {
3+
node: true,
4+
},
5+
extends: ['../../.eslintrc.js'],
6+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# OpenTelemetry v2 Tests
2+
3+
This package contains tests for `@sentry/opentelemetry` when using OpenTelemetry v2. It is used to ensure compatibility with OpenTelemetry v2 APIs.
4+
5+
## Running Tests
6+
7+
To run the tests:
8+
9+
```bash
10+
yarn test
11+
```
12+
13+
## Structure
14+
15+
The tests are copied from `packages/opentelemetry/test` with adjusted imports to work with OpenTelemetry v2 dependencies. The main differences are:
16+
17+
1. Uses OpenTelemetry v2 as devDependencies
18+
2. Imports from `@sentry/opentelemetry` instead of relative paths
19+
3. Tests the same functionality but with v2 APIs
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "opentelemetry-v2-tests",
3+
"version": "1.0.0",
4+
"private": true,
5+
"description": "Tests for @sentry/opentelemetry with OpenTelemetry v2",
6+
"engines": {
7+
"node": ">=18"
8+
},
9+
"scripts": {
10+
"test": "vitest run",
11+
"test:watch": "vitest --watch"
12+
},
13+
"devDependencies": {
14+
"@opentelemetry/api": "^1.9.0",
15+
"@opentelemetry/context-async-hooks": "^1.30.1",
16+
"@opentelemetry/core": "^1.30.1",
17+
"@opentelemetry/instrumentation": "^0.57.1",
18+
"@opentelemetry/sdk-trace-base": "^1.30.1",
19+
"@opentelemetry/semantic-conventions": "^1.30.0"
20+
},
21+
"volta": {
22+
"extends": "../../package.json"
23+
}
24+
}

0 commit comments

Comments
 (0)