Skip to content

test(mongodb): await traced operations #20599

test(mongodb): await traced operations

test(mongodb): await traced operations #20599

name: APM Integrations
on:
pull_request:
push:
branches: [master, mq-working-branch-master-*]
schedule:
- cron: 0 4 * * *
workflow_dispatch:
inputs:
latest-version:
description: "Node version to run"
required: false
type: string
concurrency:
group: ${{ github.workflow }}-${{ inputs.latest-version }}-${{ github.ref == 'refs/heads/master' && github.run_id || github.ref }}
cancel-in-progress: true
env:
LATEST_VERSION: ${{ inputs.latest-version }}
# TODO: upstream jobs
jobs:
aerospike:
name: aerospike (${{ matrix.aerospike-version }}, node-${{ matrix.node-version }})
strategy:
fail-fast: false
matrix:
node-version: [eol]
range: [">=4.0.0 <5.2.0"]
aerospike-version: [ce-5.7.0.15]
image: ["aerospike@sha256:f1fbfd8788f840fc10805690bd1352b4a99acbc4c6d113912357b4211dcf56a4"] # ce-5.7.0.15
test-image: [ubuntu-22.04]
include:
- node-version: 18
range: ">=5.2.0 <6.3.0"
range_clean: gte.5.2.0
aerospike-version: ce-6.4.0.3
image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3
test-image: ubuntu-latest
- node-version: 20
range: ">=5.5.0"
range_clean: gte.5.5.0
aerospike-version: ce-6.4.0.3
image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3
test-image: ubuntu-latest
- node-version: 22
range: ">=5.12.1"
range_clean: gte.5.12.1
aerospike-version: ce-6.4.0.3
image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3
test-image: ubuntu-latest
- node-version: 22
range: ">=6.0.0"
range_clean: gte.6.0.0
aerospike-version: ce-6.4.0.3
image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3
test-image: ubuntu-latest
runs-on: ${{ matrix.test-image }}
permissions:
id-token: write
services:
aerospike:
image: ${{ matrix.image }}
ports:
- "127.0.0.1:3000-3002:3000-3002"
env:
PLUGINS: aerospike
SERVICES: aerospike
PACKAGE_VERSION_RANGE: ${{ matrix.range }}
DD_INJECT_FORCE: "true"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- run: yarn config set ignore-engines true
- name: Install dependencies
uses: ./.github/actions/install
- name: Run tests
run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-aerospike-${{ matrix.node-version }}-${{ matrix.range_clean }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
amqp10:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
qpid:
image: scholzj/qpid-cpp@sha256:480142b4c1a64861f9974492d4f7ecdc3d565cd5e60e6a96d34e44f0bf47e043 # 1.38.0
env:
QPIDD_ADMIN_USERNAME: admin
QPIDD_ADMIN_PASSWORD: admin
ports:
- 5673:5672
env:
PLUGINS: amqp10
SERVICES: qpid
DD_DATA_STREAMS_ENABLED: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
amqplib:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
rabbitmq:
image: rabbitmq@sha256:ebe7ba2c73c719aaa78db416910b8a6d615cae519bbf0e26a65a76c29cd52729 # 3.6-alpine
ports:
- 5672:5672
env:
PLUGINS: amqplib
SERVICES: rabbitmq
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
apollo:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: apollo
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
avsc:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: avsc
DD_DATA_STREAMS_ENABLED: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
axios:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: axios
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/upstream
# `plugins/upstream` only runs `test:plugins:upstream`, which is a non-glob suite runner;
# the in-tree `test/integration-test/*.spec.js` files would otherwise have no CI invocation
# whose glob expands to reach them.
- uses: ./.github/actions/plugins/integration-test
body-parser:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: body-parser
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/upstream
- uses: ./.github/actions/plugins/integration-test
bullmq:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
redis:
image: redis@sha256:c9d92d840fd011c908f040592857c724ae6d877f2aba5c40ad963276507386b2 # 7.0-alpine
ports:
- 6379:6379
env:
PLUGINS: bullmq
SERVICES: redis
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
bunyan:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: bunyan
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
cassandra:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
cassandra:
image: cassandra@sha256:61cbfa672b254e8fc82ece6bfd434ef7a2000e39e32f8f03c9ee4700cd9973a5 # 3-focal
ports:
- 9042:9042
env:
PLUGINS: cassandra-driver
SERVICES: cassandra
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
child_process:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: child_process
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/active-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/latest
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-child-process
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
crypto:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: crypto
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
confluentinc-kafka-javascript:
strategy:
fail-fast: false
matrix:
# using node versions matrix since this plugin testing fails due to install differences between node versions
node-version: [18, 20, 22]
range: [">=1.0.0"]
include:
- node-version: 24
range: ">=1.4.0"
range_clean: gte.1.4.0
runs-on: ubuntu-latest
permissions:
id-token: write
services:
kafka:
image: apache/kafka@sha256:4ceccc577f03f51f6af8dbfda55194d0d892f4fa7913ffbded567ce3895622ed # 3.9.1
env:
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_NODE_ID: "1"
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_CLUSTER_ID: r4zt_wrqTRuT7W2NJsB_GA
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1"
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: "0"
ports:
- 9092:9092
- 9093:9093
options: >-
--health-cmd "nc -z localhost 9092"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
PLUGINS: confluentinc-kafka-javascript
SERVICES: kafka
PACKAGE_VERSION_RANGE: ${{ matrix.range }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-confluentinc-kafka-javascript-${{ matrix.node-version }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
cookie-parser:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: cookie-parser
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
cookie:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: cookie
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
couchbase:
strategy:
fail-fast: false
matrix:
node-version: [eol]
range:
- "^3.0.7"
- ">=4.0.0 <4.2.0"
include:
- node-version: oldest
range: ">=4.2.0"
runs-on: ubuntu-latest
permissions:
id-token: write
services:
couchbase:
image: ghcr.io/datadog/couchbase-server-sandbox@sha256:4ffbf2bc9785a9c7c6ddd7580226280a2a9f1f08c689999f5dff7958e71ad97e # latest
ports:
- 8091-8095:8091-8095
- 11210:11210
env:
PLUGINS: couchbase
SERVICES: couchbase
PACKAGE_VERSION_RANGE: ${{ matrix.range }}
DD_INJECT_FORCE: "true"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: yarn config set ignore-engines true
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-couchbase-${{ matrix.node-version }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
connect:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: connect
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
dns:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: dns
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/active-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/latest
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-dns
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
elasticsearch:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
elasticsearch:
image: elasticsearch@sha256:432f21444d8b70a4ab5fc64f9ef7112aaf0c21361948f2deb26d7a5c7333cf35 # 7.17.22
env:
discovery.type: single-node
ports:
- 9200:9200
env:
PLUGINS: elasticsearch
SERVICES: elasticsearch
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-elasticsearch
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
electron:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: electron
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node
with:
version: '24.15'
- uses: ./.github/actions/install
# Ubuntu 24.04 tightened AppArmor defaults and now blocks unprivileged user
# namespaces, which Electron's Chromium sandbox requires to run. Setting
# this to 0 re-enables them for the duration of the job.
- run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- run: |
# apt's package mirrors occasionally return transient 5xx/invalid-data errors; retry with backoff so a
# blip doesn't fail the job. `until` keeps `set -e` from aborting on an intermediate failure.
# Xvfb provides a virtual X display so Electron (a GUI app) can start on the headless CI runner
# without a physical screen.
n=0
until sudo apt-get update && sudo apt-get install -y xvfb x11-utils; do
n=$((n + 1))
if [ "$n" -ge 3 ]; then echo "apt failed after $n attempts" >&2; exit 1; fi
echo "apt attempt $n failed; retrying in $((n * 10))s" >&2
sleep $((n * 10))
done
# Launch the virtual display on screen :99 with a 24-bit 1024×768
# framebuffer. Output is discarded; the & backgrounds it so the step
# does not block.
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
# Wait until the display is ready before proceeding, otherwise Electron
# can fail to connect to the display and the test beforeEach times out.
# Bounded at 30s so an Xvfb crash fails fast instead of hanging.
timeout 30 bash -c 'until xdpyinfo -display :99 >/dev/null 2>&1; do sleep 0.1; done'
# Point Electron at the virtual display started above.
- run: DISPLAY=:99 npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-electron
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
express:
runs-on: ubuntu-latest
env:
PLUGINS: express
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-express
express-mongo-sanitize:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: express-mongo-sanitize
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
express-session:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: express-session
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
fastify:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: fastify
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
fetch:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: fetch
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
fs:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: fs
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
generic-pool:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: generic-pool
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
graphql:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: graphql
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
grpc:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: grpc
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
handlebars:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: handlebars
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
hapi:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: hapi
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
hono:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: hono
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
http:
strategy:
fail-fast: false
matrix:
node-version: [oldest, maintenance, latest]
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: http
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-http-${{ matrix.node-version }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
http2:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: http2
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/active-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/latest
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-http2
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
kafkajs:
strategy:
fail-fast: false
matrix:
node-version: [oldest, latest]
runs-on: ubuntu-latest
permissions:
id-token: write
services:
kafka:
image: apache/kafka@sha256:4ceccc577f03f51f6af8dbfda55194d0d892f4fa7913ffbded567ce3895622ed # 3.9.1
env:
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_NODE_ID: "1"
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_CLUSTER_ID: r4zt_wrqTRuT7W2NJsB_GA
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1"
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: "0"
ports:
- 9092:9092
- 9093:9093
options: >-
--health-cmd "nc -z localhost 9092"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
PLUGINS: kafkajs
SERVICES: kafka
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-kafkajs-${{ matrix.node-version }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
knex:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: knex
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
koa:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: koa
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
ldapjs:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: ldapjs
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
light-my-request:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: "light-my-request"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
limitd-client:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
limitd:
image: ghcr.io/rochdev/limitd@sha256:3315deb2a9fba6d9753b26363947992c2c7b1465aba7352b4595c76a197aaeff # latest
env:
BUCKET_1_NAME: "user"
BUCKET_1_SIZE: "10"
BUCKET_1_PER_SECOND: "5"
ports:
- 9231:9231
env:
PLUGINS: limitd-client
SERVICES: limitd
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
lodash:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: lodash
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
mariadb:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mysql:
image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "db"
ports:
- 3306:3306
env:
PLUGINS: mariadb
SERVICES: mariadb
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
memcached:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
memcached:
image: memcached@sha256:6627e971255440a1bd789ca709d8c6c767b98ad4ba0b29d49c7949ba3275cbf9 # 1.5-alpine
ports:
- 11211:11211
env:
PLUGINS: memcached
SERVICES: memcached
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
mercurius:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: mercurius
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
microgateway-core:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: microgateway-core
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
moleculer:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: moleculer
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
mongodb:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mongodb:
image: circleci/mongo@sha256:454132cea3bda78131361269be8d6cbce85ede665b183df7c1fc9a0baf185b94 # latest
ports:
- 27017:27017
env:
PLUGINS: mongodb-core
PACKAGE_NAMES: mongodb
SERVICES: mongo
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
with:
node-floor: newest-maintenance-lts
mongodb-core:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mongodb:
image: circleci/mongo@sha256:454132cea3bda78131361269be8d6cbce85ede665b183df7c1fc9a0baf185b94 # latest
ports:
- 27017:27017
env:
PLUGINS: mongodb-core|express-mongo-sanitize
PACKAGE_NAMES: mongodb-core,express-mongo-sanitize
SERVICES: mongo
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
with:
node-floor: newest-maintenance-lts
mongoose:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mongodb:
image: circleci/mongo@sha256:454132cea3bda78131361269be8d6cbce85ede665b183df7c1fc9a0baf185b94 # latest
ports:
- 27017:27017
env:
PLUGINS: mongoose
SERVICES: mongo
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
with:
node-floor: newest-maintenance-lts
multer:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: multer
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
mysql:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mysql:
image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "db"
ports:
- 3306:3306
env:
PLUGINS: mysql
SERVICES: mysql
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
mysql2:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mysql:
image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "db"
ports:
- 3306:3306
env:
PLUGINS: mysql2
SERVICES: mysql2
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
nats:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
nats:
image: nats@sha256:7f430e429d0a90444b38bd40ab7812fd3afcc49a51f6b03a931f9becd5aeb280 # 2.14.1
ports:
- 4222:4222
env:
PLUGINS: nats
SERVICES: nats
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
net:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: net
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/active-lts
- run: npm run test:plugins:ci
- uses: ./.github/actions/node/latest
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-net
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
# TODO: fix performance issues and test more Node versions
next:
strategy:
fail-fast: false
matrix:
version:
- 18
- latest
range:
- "11.1.4"
- "12.3.7"
- "13.0.0"
- "13.2.0"
- "13.5.11"
- "14.0.0"
- "14.2.6"
- "14.2.7"
- "14.2.35"
- "15.0.0"
- "15.4.0"
- "15.4.1"
- "*"
include:
- range: "*"
range_clean: latest
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: next
PACKAGE_VERSION_RANGE: ${{ matrix.range }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-next-${{ matrix.range_clean || matrix.range }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
node-serialize:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: node-serialize
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
opensearch:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
opensearch:
image: opensearchproject/opensearch@sha256:7d7f306996c0901956e0c413c817f4e249bd3d27c9c9ea6460bd7da88df73039 # 2.8.0
env:
plugins.security.disabled: "true"
discovery.type: single-node
ports:
- 9201:9200
env:
PLUGINS: opensearch
SERVICES: opensearch
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
oracledb:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
oracledb:
image: gvenzl/oracle-xe@sha256:118d22f6df24caff2456323e334c14b9cfcc8fad7475b5421fa1638baa6f54ca # 18-slim
env:
ORACLE_PASSWORD: Oracle18
ports:
- 1521:1521
- 5500:5500
env:
PLUGINS: oracledb
SERVICES: oracledb
DD_INJECT_FORCE: "true"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node
with:
version: eol
- uses: ./.github/actions/install
- run: |
mkdir -p /opt/oracle
cd /opt/oracle
wget https://download.oracle.com/otn_software/linux/instantclient/1928000/instantclient-basic-linux.x64-19.28.0.0.0dbru.zip
unzip instantclient-basic-linux.x64-19.28.0.0.0dbru.zip
sudo apt-get update -y && sudo apt-get install -y libaio1t64
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
sudo sh -c "echo /opt/oracle/instantclient_19_28 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
- run: yarn config set ignore-engines true
- run: yarn services --ignore-engines
- run: npm run test:plugins:ci
- if: always()
uses: ./.github/actions/testagent/logs
with:
suffix: plugins-${{ github.job }}
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-oracledb
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
# TODO: re-enable upstream tests if it ever stops being flaky
pino:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: pino
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
with:
node-floor: newest-maintenance-lts
passport-http:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: passport-http
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
postgres:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
postgres:
image: postgres@sha256:75ebf479151a8fd77bf2fed46ef76ce8d518c23264734c48f2d1de42b4eb40ae # 9.5
env:
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
env:
PG_TEST_NATIVE: "true"
PLUGINS: pg
SERVICES: postgres
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
prisma:
strategy:
fail-fast: false
matrix:
include:
- node-version: 18
range: ">=6.1.0 <7.0.0"
range_clean: gte.6.16.0.and.lt.7.0.0
- node-version: latest
range: ""
range_clean: all
runs-on: ubuntu-latest
permissions:
id-token: write
services:
postgres:
image: postgres@sha256:75ebf479151a8fd77bf2fed46ef76ce8d518c23264734c48f2d1de42b4eb40ae # 9.5
env:
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
mssql:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/mssql/server@sha256:8bb7f2f0684104d98ef4cbedf574210f38ea0f00fc0713af9d3f962f7578a6a8 # 2019-latest
env:
ACCEPT_EULA: "Y"
SA_PASSWORD: DD_HUNTER2
MSSQL_PID: Express
ports:
- 1433:1433
mongodb:
image: prismagraphql/mongo-single-replica@sha256:3efd76778f3db22e167e4c5a4ceaae335bdc23a84e82dc3c8b44a39e61d93a24 # 4.4.3-bionic
ports:
- 27017:27017
mysql:
image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4
env:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: "db"
ports:
- 3306:3306
env:
PLUGINS: prisma
TEST_MSSQL_DATABASE_URL: "sqlserver://localhost:1433;database=master;user=sa;password=DD_HUNTER2;encrypt=true;trustServerCertificate=true"
SERVICES: prisma
PACKAGE_VERSION_RANGE: ${{ matrix.range }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- name: Run tests
run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-prisma-${{ matrix.node-version }}-${{ matrix.range_clean }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
process:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: process
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
protobufjs:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: protobufjs
DD_DATA_STREAMS_ENABLED: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
pug:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: pug
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
redis:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
redis:
image: redis@sha256:a0bb2f95a4672c5bbf3a01fcc2eb6dfb8fd898d83fc71cbf012c6b9479ab1607 # 6.2-alpine
ports:
- 6379:6379
env:
PLUGINS: redis
SERVICES: redis
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
ioredis:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
redis:
image: redis@sha256:a0bb2f95a4672c5bbf3a01fcc2eb6dfb8fd898d83fc71cbf012c6b9479ab1607 # 6.2-alpine
ports:
- 6379:6379
redis-cluster:
image: grokzen/redis-cluster@sha256:f130dd8a322fc4dc595380ec94907539c341d5841de7d31e679223aec04d30f6 # 7.0.10
env:
IP: 0.0.0.0
INITIAL_PORT: 7000
ports:
- 7000:7000
- 7001:7001
- 7002:7002
- 7003:7003
- 7004:7004
- 7005:7005
env:
PLUGINS: ioredis
SERVICES: redis-cluster
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
valkey:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
valkey:
image: valkey/valkey@sha256:1cb6b20b70d927560cc4cc5397b5f045e74aa603ff7696274778880bb6fadc75 # 8.1-alpine
ports:
- 6379:6379
env:
PLUGINS: iovalkey
SERVICES: valkey
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
# Restify isn't compatible with Node.js v24 so we don't run against latest Node.js
# see: https://github.com/restify/node-restify/issues/1984
restify:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: restify
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-restify
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
rhea:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
qpid:
image: scholzj/qpid-cpp@sha256:480142b4c1a64861f9974492d4f7ecdc3d565cd5e60e6a96d34e44f0bf47e043 # 1.38.0
env:
QPIDD_ADMIN_USERNAME: admin
QPIDD_ADMIN_PASSWORD: admin
ports:
- 5673:5672
env:
PLUGINS: rhea
SERVICES: qpid
DD_DATA_STREAMS_ENABLED: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test-and-upstream
router:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: router
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
sequelize:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: sequelize
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
sharedb:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: sharedb
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-sharedb
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
tedious:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
mssql:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/mssql/server@sha256:8bb7f2f0684104d98ef4cbedf574210f38ea0f00fc0713af9d3f962f7578a6a8 # 2019-latest
env:
ACCEPT_EULA: "Y"
SA_PASSWORD: DD_HUNTER2
MSSQL_PID: Express
ports:
- 1433:1433
env:
PLUGINS: tedious
SERVICES: mssql
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- run: npm run test:plugins:upstream
- uses: ./.github/actions/coverage
with:
flags: apm-integrations-tedious
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
undici:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: undici
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
url:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: url
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
vm:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: vm
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: ./.github/actions/plugins/test
winston:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: winston
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
ws:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: ws
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test