diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 00000000000..1dcd0e07af1 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,73 @@ +name: E2E Tests + +on: + push: + branches: [main] + pull_request: + +jobs: + e2e-tests: + strategy: + fail-fast: false + matrix: + node_version: + - "18.19.0" + - "18" + - "20.6.0" + - "20" + - "22" + - "23" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + cache: 'npm' + cache-dependency-path: | + package-lock.json + node-version: ${{ matrix.node_version }} + + # npm@11.0.0 drops support for Node.js v18 + # Install the latest npm compatible with this version of Node.js + # - npm@11.1.0 supports: {"node":"^20.17.0 || >=22.9.0"} + - run: npm install -g npm@"<11.0.0" + if: ${{ + matrix.node_version == '18.19.0' || + matrix.node_version == '18' || + matrix.node_version == '20.6.0' + }} + - run: npm install -g npm@latest + if: ${{ + matrix.node_version == '20' || + matrix.node_version == '22' || + matrix.node_version == '23' + }} + + - name: Bootstrap + run: npm ci + + - name: Build 🔧 + run: npm run compile + + - name: Install collector + run: | + curl -sSL -o otelcol-contrib.tar.gz https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.126.0/otelcol-contrib_0.126.0_linux_amd64.tar.gz + tar -xzf otelcol-contrib.tar.gz + working-directory: e2e-tests + - name: run collector in background + run: | + ./otelcol-contrib --config collector-config.yaml & + working-directory: e2e-tests + - name: Export telemetry to collector + run: npm run export-telemetry + working-directory: e2e-tests + - name: stop collector + run: pkill -f otelcol-contrib + working-directory: e2e-tests + - name: Print output + run: cat collector-output.json + working-directory: e2e-tests + - name: verify exported telemetry + run: npm run verify + working-directory: e2e-tests \ No newline at end of file diff --git a/e2e-tests/.eslintrc.js b/e2e-tests/.eslintrc.js new file mode 100644 index 00000000000..509232fb86a --- /dev/null +++ b/e2e-tests/.eslintrc.js @@ -0,0 +1,25 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = { + env: { + node: true, + }, + ...require('../eslint.base.js'), + rules: { + 'no-console': 'off', + }, +}; diff --git a/e2e-tests/.gitignore b/e2e-tests/.gitignore new file mode 100644 index 00000000000..5013eee09be --- /dev/null +++ b/e2e-tests/.gitignore @@ -0,0 +1,2 @@ +# collector output file +collector-output.json \ No newline at end of file diff --git a/e2e-tests/README.md b/e2e-tests/README.md new file mode 100644 index 00000000000..38e08da0d02 --- /dev/null +++ b/e2e-tests/README.md @@ -0,0 +1,36 @@ +# OpenTelemetry JS End-to-End Tests + +This directory contains end-to-end (E2E) tests for the OpenTelemetry JavaScript project. These tests verify the integration of OpenTelemetry components with a real OpenTelemetry Collector. + +## Prerequisites + +- [Node.js](https://nodejs.org/) (version as required by the root project) +- [Docker](https://www.docker.com/) (for running the OpenTelemetry Collector) + +## Installation + +Install dependencies: + +```sh +npm install +``` + +## Running Tests + +Test can be run completely or each step can be run separately. + +### `npm run test:e2e` + +Runs the full E2E test workflow in sequence: prepares the output file, starts the Collector, runs the tests, stops the Collector, and verifies the results. + +### `npm run run-collector` + +Starts the OpenTelemetry Collector in a Docker container and mounts the output file for results. Waits 5 seconds for the Collector to be ready. + +### `npm run stop-collector` + +Stops the Docker container running the Collector if it’s running. + +### `npm run verify` + +Runs the verification script (`verify.mjs`) to check the contents of `collector-output.json` for expected results. diff --git a/e2e-tests/collector-config.yaml b/e2e-tests/collector-config.yaml new file mode 100644 index 00000000000..e9d46fd83ba --- /dev/null +++ b/e2e-tests/collector-config.yaml @@ -0,0 +1,21 @@ +receivers: + otlp: + protocols: + http: + endpoint: 0.0.0.0:4318 + +exporters: + file: + path: ./collector-output.json + +service: + pipelines: + traces: + receivers: [otlp] + exporters: [file] + metrics: + receivers: [otlp] + exporters: [file] + logs: + receivers: [otlp] + exporters: [file] \ No newline at end of file diff --git a/e2e-tests/package.json b/e2e-tests/package.json new file mode 100644 index 00000000000..9701d3ecf45 --- /dev/null +++ b/e2e-tests/package.json @@ -0,0 +1,27 @@ +{ + "name": "@opentelemetry/e2e-test", + "private": true, + "description": "End-to-end tests for OpenTelemetry JS", + "version": "0.0.0", + "scripts": { + "test:e2e": "npm run run-collector && npm run export-telemetry && npm run verify && npm run stop-collector", + "lint": "eslint . --ext .mjs", + "lint:fix": "eslint . --ext .mjs --fix", + "run-collector": "docker run -d --rm --name otelcol-e2e -v $(pwd)/collector-config.yaml:/etc/otelcol/config.yaml -v $(pwd)/collector-output.json:/tmp/collector-output.json -p 4317:4317 -p 4318:4318 -w /tmp otel/opentelemetry-collector-contrib:latest --config /etc/otelcol/config.yaml && sleep 5", + "export-telemetry": "node test.mjs", + "prerun-collector": "node -e \"require('fs').writeFileSync('collector-output.json', '')\"", + "stop-collector": "docker stop otelcol-e2e", + "verify": "node verify.mjs" + }, + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "@opentelemetry/api-logs": "~0.201.1", + "@opentelemetry/sdk-node": "0.201.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.201.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.201.1", + "@opentelemetry/exporter-logs-otlp-proto": "0.201.1", + "@opentelemetry/sdk-metrics": "2.0.1", + "@opentelemetry/sdk-logs": "0.201.1", + "@opentelemetry/sdk-trace-base": "2.0.1" + } +} \ No newline at end of file diff --git a/e2e-tests/test.mjs b/e2e-tests/test.mjs new file mode 100644 index 00000000000..dbff03e01fb --- /dev/null +++ b/e2e-tests/test.mjs @@ -0,0 +1,95 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NodeSDK } from '@opentelemetry/sdk-node'; +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto'; +import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto'; +import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; +import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-proto'; +import { SimpleLogRecordProcessor } from '@opentelemetry/sdk-logs'; +import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base'; +import { + diag, + DiagConsoleLogger, + DiagLogLevel, + trace, + metrics, +} from '@opentelemetry/api'; +import { logs } from '@opentelemetry/api-logs'; + +// Enable diagnostic logging (optional) +diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO); + +const collectorUrl = 'http://localhost:4318/v1'; + +// Set up trace exporter with SimpleSpanProcessor +const traceExporter = new OTLPTraceExporter({ + url: `${collectorUrl}/traces`, +}); +const spanProcessors = [new SimpleSpanProcessor(traceExporter)]; + +// Set up metric exporter +const metricExporter = new OTLPMetricExporter({ + url: `${collectorUrl}/metrics`, +}); +const metricReader = new PeriodicExportingMetricReader({ + exporter: metricExporter, + exportIntervalMillis: 1000, + exportTimeoutMillis: 1000, +}); + +// Set up log exporter +const logExporter = new OTLPLogExporter({ + url: `${collectorUrl}/logs`, +}); +const logRecordProcessors = [new SimpleLogRecordProcessor(logExporter)]; + +// Set up OpenTelemetry SDK +const sdk = new NodeSDK({ + spanProcessors, + metricReader, + logRecordProcessors, +}); + +async function main() { + sdk.start(); + + // Create a span + const tracer = trace.getTracer('example-tracer'); + const span = tracer.startSpan('example-span'); + span.setAttribute('example-attribute', 'value'); + span.end(); + + // Create a metric + const meter = metrics.getMeter('example-meter'); + const counter = meter.createUpDownCounter('example_counter'); + counter.add(42, { foo: 'bar' }); + + // Create a log + const logger = logs.getLogger('example-logger'); + logger.emit({ + severityText: 'INFO', + body: 'test-log-body', + attributes: { foo: 'bar' }, + }); + + // flushes exporters and shuts down the SDK + await sdk.shutdown(); +} + +main().catch(err => { + console.error('Error running example:', err); + process.exit(1); +}); diff --git a/e2e-tests/verify.mjs b/e2e-tests/verify.mjs new file mode 100755 index 00000000000..05c6888a3d5 --- /dev/null +++ b/e2e-tests/verify.mjs @@ -0,0 +1,97 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +import fs from 'fs'; + +const data = fs.readFileSync('collector-output.json', 'utf8'); + +let verifiedSpan = false; +let verifiedMetric = false; +let verifiedLog = false; + +const lines = data.split('\n').filter(Boolean); +for (const line of lines) { + const parsed = JSON.parse(line); + if (parsed.resourceSpans) { + console.log('found span'); + verifySpan(parsed.resourceSpans[0].scopeSpans[0].spans[0]); + verifiedSpan = true; + } + if (parsed.resourceMetrics) { + console.log('found metric'); + verifyMetric(parsed.resourceMetrics[0].scopeMetrics[0].metrics[0]); + verifiedMetric = true; + } + if (parsed.resourceLogs) { + console.log('found log'); + verifyLog(parsed.resourceLogs[0].scopeLogs[0].logRecords[0]); + verifiedLog = true; + } +} + +if (!verifiedSpan) { + console.error('No spans found in the output'); + process.exit(1); +} +if (!verifiedMetric) { + console.error('No metrics found in the output'); + process.exit(1); +} +if (!verifiedLog) { + console.error('No logs found in the output'); + process.exit(1); +} + +function verifySpan(span) { + const expectedName = 'example-span'; + if (span.name !== expectedName) { + console.error(`Expected span name ${expectedName}, but got '${span.name}'`); + process.exit(1); + } +} + +function verifyMetric(metric) { + const expectedName = 'example_counter'; + const expectedValue = 42; + + if (metric.name !== expectedName) { + console.error( + `Expected metric name ${expectedName}, but got '${metric.name}'` + ); + process.exit(1); + } + if ( + metric.sum && + metric.sum.dataPoints && + metric.sum.dataPoints[0].asDouble !== expectedValue + ) { + console.error( + `Expected metric value ${expectedValue}, but got '${metric.sum.dataPoints[0].asDouble}'` + ); + process.exit(1); + } +} + +function verifyLog(log) { + const expectedBody = 'test-log-body'; + if (log.body && log.body.stringValue !== expectedBody) { + console.error( + `Expected log body '${expectedBody}', but got '${log.body.stringValue}'` + ); + process.exit(1); + } +} diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 9f94622f4a4..73f32e37938 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -10,6 +10,7 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2 ### :rocket: Features +* feat(exporter-otlp-\*): update proto to `v1.7.0` * feat(exporter-metrics-otlp-proto): Support to protobuf in browser metrics. [#5710](https://github.com/open-telemetry/opentelemetry-js/pull/5710) @YangJonghun ### :bug: Bug Fixes diff --git a/experimental/packages/exporter-logs-otlp-grpc/README.md b/experimental/packages/exporter-logs-otlp-grpc/README.md index f052ff6d8b3..f4bf1f259ad 100644 --- a/experimental/packages/exporter-logs-otlp-grpc/README.md +++ b/experimental/packages/exporter-logs-otlp-grpc/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a logs-exporter for OTLP (gRPC) using protocol version `v0.20.0`. +This module provides a logs-exporter for OTLP (gRPC) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/exporter-logs-otlp-http/README.md b/experimental/packages/exporter-logs-otlp-http/README.md index 72cd8fec781..da43e1e74f4 100644 --- a/experimental/packages/exporter-logs-otlp-http/README.md +++ b/experimental/packages/exporter-logs-otlp-http/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a logs-exporter for OTLP (http/json) using protocol version `v0.20.0`. +This module provides a logs-exporter for OTLP (http/json) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/exporter-logs-otlp-proto/README.md b/experimental/packages/exporter-logs-otlp-proto/README.md index 4e80c278cea..8ef48bcf212 100644 --- a/experimental/packages/exporter-logs-otlp-proto/README.md +++ b/experimental/packages/exporter-logs-otlp-proto/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a logs-exporter for OTLP (http/protobuf) using protocol version `v0.20.0`. +This module provides a logs-exporter for OTLP (http/protobuf) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/exporter-trace-otlp-grpc/README.md b/experimental/packages/exporter-trace-otlp-grpc/README.md index 240295aa054..194a04aad13 100644 --- a/experimental/packages/exporter-trace-otlp-grpc/README.md +++ b/experimental/packages/exporter-trace-otlp-grpc/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a trace-exporter for OTLP (gRPC) traces using protocol version `v0.20.0`. +This module provides a trace-exporter for OTLP (gRPC) traces using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/exporter-trace-otlp-http/README.md b/experimental/packages/exporter-trace-otlp-http/README.md index 10f71e5811e..5e41a7f3430 100644 --- a/experimental/packages/exporter-trace-otlp-http/README.md +++ b/experimental/packages/exporter-trace-otlp-http/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a trace-exporter for OTLP (http/json) using protocol version `v0.20.0`. +This module provides a trace-exporter for OTLP (http/json) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/exporter-trace-otlp-proto/README.md b/experimental/packages/exporter-trace-otlp-proto/README.md index c72b18c993c..d8017c9c87e 100644 --- a/experimental/packages/exporter-trace-otlp-proto/README.md +++ b/experimental/packages/exporter-trace-otlp-proto/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a trace-exporter for OTLP (http/protobuf) using protocol version `v0.20.0`. +This module provides a trace-exporter for OTLP (http/protobuf) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md index 25bf7cd559a..7e292dcba7e 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-grpc/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a metrics-exporter for OTLP (gRPC) using protocol version `v0.20.0`. +This module provides a metrics-exporter for OTLP (gRPC) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md index 49938ce7bdf..3f6812dc878 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-http/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a metrics-exporter for OTLP (http/json) using protocol version `v0.20.0`. +This module provides a metrics-exporter for OTLP (http/json) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md index 8408d80fa94..a385870e7dd 100644 --- a/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md +++ b/experimental/packages/opentelemetry-exporter-metrics-otlp-proto/README.md @@ -5,7 +5,7 @@ **Note: This is an experimental package under active development. New releases may include breaking changes.** -This module provides a metrics-exporter for OTLP (http/protobuf) using protocol version `v0.20.0`. +This module provides a metrics-exporter for OTLP (http/protobuf) using protocol version `v1.7.0`. ## Installation diff --git a/experimental/packages/otlp-grpc-exporter-base/submodule.md b/experimental/packages/otlp-grpc-exporter-base/submodule.md deleted file mode 100644 index fd5d1a7a471..00000000000 --- a/experimental/packages/otlp-grpc-exporter-base/submodule.md +++ /dev/null @@ -1,46 +0,0 @@ -# Important - -**Submodule is always pointing to certain revision number. So updating the submodule repo will not have impact on your code. -Knowing this if you want to change the submodule to point to a different version (when for example proto has changed) here is how to do it:** - -## Updating submodule to point to certain revision number - -1. Make sure you are in the same folder as this instruction - -2. Update your submodules by running this command - - ```shell script - git submodule sync --recursive - git submodule update --init --recursive - ``` - -3. Find the SHA which you want to update to and copy it (the long one) -the latest sha when this guide was written is `59c488bfb8fb6d0458ad6425758b70259ff4a2bd` - -4. Enter a submodule directory from this directory - - ```shell script - cd protos - ``` - -5. Updates files in the submodule tree to given commit: - - ```shell script - git checkout -q - ``` - -6. Return to the main directory: - - ```shell script - cd ../ - ``` - -7. Please run `git status` you should see something like `Head detached at`. This is correct, go to next step - -8. Now thing which is very important. You have to commit this to apply these changes - - ```shell script - git commit -am "chore: updating submodule for otlp-grpc-exporter-base" - ``` - -9. If you look now at git log you will notice that the folder `protos` has been changed and it will show what was the previous sha and what is current one. diff --git a/experimental/packages/otlp-transformer/protos b/experimental/packages/otlp-transformer/protos index 1608f92cf08..8654ab7a5a4 160000 --- a/experimental/packages/otlp-transformer/protos +++ b/experimental/packages/otlp-transformer/protos @@ -1 +1 @@ -Subproject commit 1608f92cf08119f9aec237c910b200d1317ec696 +Subproject commit 8654ab7a5a43ca25fe8046e59dcd6935c3f76de0 diff --git a/package-lock.json b/package-lock.json index b23004300c2..3b6776520ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "api", "packages/*", "semantic-conventions", + "e2e-tests", "experimental/packages/*", "experimental/examples/*", "experimental/backwards-compatibility/*", @@ -96,6 +97,37 @@ "dev": true, "license": "MIT" }, + "e2e": { + "name": "opentelemetry-e2e-test", + "version": "0.0.0", + "extraneous": true, + "dependencies": { + "@opentelemetry/api": "*", + "@opentelemetry/api-logs": "*", + "@opentelemetry/exporter-logs-otlp-proto": "*", + "@opentelemetry/exporter-metrics-otlp-proto": "*", + "@opentelemetry/exporter-trace-otlp-proto": "*", + "@opentelemetry/sdk-logs": "*", + "@opentelemetry/sdk-metrics": "*", + "@opentelemetry/sdk-node": "*", + "@opentelemetry/sdk-trace-base": "*" + } + }, + "e2e-tests": { + "name": "@opentelemetry/e2e-test", + "version": "0.0.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0", + "@opentelemetry/api-logs": "~0.201.1", + "@opentelemetry/exporter-logs-otlp-proto": "0.201.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.201.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.201.1", + "@opentelemetry/sdk-logs": "0.201.1", + "@opentelemetry/sdk-metrics": "2.0.1", + "@opentelemetry/sdk-node": "0.201.1", + "@opentelemetry/sdk-trace-base": "2.0.1" + } + }, "examples/esm-http-ts": { "version": "0.201.1", "license": "Apache-2.0", @@ -7783,6 +7815,10 @@ "resolved": "packages/opentelemetry-core", "link": true }, + "node_modules/@opentelemetry/e2e-test": { + "resolved": "e2e-tests", + "link": true + }, "node_modules/@opentelemetry/exporter-jaeger": { "resolved": "packages/opentelemetry-exporter-jaeger", "link": true @@ -34770,6 +34806,20 @@ } } }, + "@opentelemetry/e2e-test": { + "version": "file:e2e-tests", + "requires": { + "@opentelemetry/api": "^1.3.0", + "@opentelemetry/api-logs": "~0.201.1", + "@opentelemetry/exporter-logs-otlp-proto": "0.201.1", + "@opentelemetry/exporter-metrics-otlp-proto": "0.201.1", + "@opentelemetry/exporter-trace-otlp-proto": "0.201.1", + "@opentelemetry/sdk-logs": "0.201.1", + "@opentelemetry/sdk-metrics": "2.0.1", + "@opentelemetry/sdk-node": "0.201.1", + "@opentelemetry/sdk-trace-base": "2.0.1" + } + }, "@opentelemetry/exporter-jaeger": { "version": "file:packages/opentelemetry-exporter-jaeger", "requires": { diff --git a/package.json b/package.json index fb0b9da7508..39e5b884262 100644 --- a/package.json +++ b/package.json @@ -118,6 +118,7 @@ "api", "packages/*", "semantic-conventions", + "e2e-tests", "experimental/packages/*", "experimental/examples/*", "experimental/backwards-compatibility/*", diff --git a/scripts/update-ts-configs.js b/scripts/update-ts-configs.js index fc38cad168c..82592be06f6 100644 --- a/scripts/update-ts-configs.js +++ b/scripts/update-ts-configs.js @@ -44,6 +44,7 @@ const tsConfigMergeKeys = [ // Make `extends` the first field. const tsConfigPriorityKeys = ['extends']; const ignoredLernaProjects = [ + 'e2e-tests', 'experimental/examples/*', 'experimental/backwards-compatibility/*', 'integration-tests/*',