Skip to content

feat(openfeature): improve exposure buffering #17952

feat(openfeature): improve exposure buffering

feat(openfeature): improve exposure buffering #17952

Workflow file for this run

name: Serverless
on:
pull_request:
push:
branches: [master, mq-working-branch-master-*]
schedule:
- cron: 0 4 * * *
workflow_dispatch:
inputs:
latest-version:
description: "Node version to use"
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 }}
jobs:
lambda:
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/node/oldest-maintenance-lts
- uses: ./.github/actions/install
- run: npm run test:lambda:ci
- uses: ./.github/actions/node/newest-maintenance-lts
- run: npm run test:lambda:ci
- uses: ./.github/actions/node/active-lts
- run: npm run test:lambda:ci
- uses: ./.github/actions/node/latest
- run: npm run test:lambda:ci
- uses: ./.github/actions/coverage
with:
flags: serverless-lambda
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}
aws-sdk:
strategy:
fail-fast: false
matrix:
node-version: [oldest, latest]
spec:
- client
- aws-sdk
- base-inject-field
- bedrockruntime
- dynamodb
- eventbridge
- kinesis
- lambda
- s3
- serverless-peer-service
- sns
- sqs
- stepfunctions
- util
runs-on: ubuntu-latest
permissions:
id-token: write
services:
localstack:
image: localstack/localstack@sha256:e606c4421419030b12d63a59f1211f57f5b0fbf7e9ce769e6250ee62ff4f9293 # 3.0.2
env:
LOCALSTACK_SERVICES: dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless,lambda,stepfunctions,events
EXTRA_CORS_ALLOWED_HEADERS: x-amz-request-id,x-amzn-requestid,x-amz-id-2
EXTRA_CORS_EXPOSE_HEADERS: x-amz-request-id,x-amzn-requestid,x-amz-id-2
AWS_DEFAULT_REGION: us-east-1
FORCE_NONINTERACTIVE: "true"
START_WEB: "0"
ports:
- 4566:4566
volumes:
- /var/run/docker.sock:/var/run/docker.sock:rw
# we have two localstacks since upgrading localstack was causing lambda & S3 tests to fail
# To-Do: Debug localstack / lambda and localstack / S3
localstack-legacy:
image: localstack/localstack@sha256:934a0d7fdab229160afa488eb2f9af2cf760d6982e14fcf86eb2c976195763b6 # 1.1.0
ports:
- "127.0.0.1:4567:4567" # Edge
env:
LOCALSTACK_SERVICES: dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless
EXTRA_CORS_ALLOWED_HEADERS: x-amz-request-id,x-amzn-requestid,x-amz-id-2
EXTRA_CORS_EXPOSE_HEADERS: x-amz-request-id,x-amzn-requestid,x-amz-id-2
AWS_DEFAULT_REGION: us-east-1
FORCE_NONINTERACTIVE: "true"
LAMBDA_EXECUTOR: local
START_WEB: "0"
GATEWAY_LISTEN: 127.0.0.1:4567
EDGE_PORT: 4567
EDGE_PORT_HTTP: 4567
env:
PLUGINS: aws-sdk
SPEC: ${{ matrix.spec }}
SERVICES: localstack localstack-legacy
DD_DATA_STREAMS_ENABLED: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: npm run test:plugins:ci
- if: always()
uses: ./.github/actions/testagent/logs
with:
suffix: plugins-${{ github.job }}-${{ matrix.node-version }}-${{ matrix.spec }}
- uses: ./.github/actions/coverage
with:
flags: serverless-aws-sdk-${{ matrix.node-version }}-${{ matrix.spec }}
- uses: ./.github/actions/upload-junit-artifacts
if: "!cancelled()"
with:
id: ${{ github.job }}-${{ strategy.job-index }}
aws-durable-execution-sdk-js:
runs-on: ubuntu-latest
permissions:
id-token: write
env:
PLUGINS: aws-durable-execution-sdk-js
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test
azure-event-hubs:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
azurite:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0
ports:
- "127.0.0.1:10000:10000"
- "127.0.0.1:10001:10001"
- "127.0.0.1:10002:10002"
azureeventhubsemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/eventhubs-emulator@sha256:25ec4141efb69933a0c82e6a787fa147a3895519e7d236d4c41ba568e03100eb # 2.1.0
ports:
- "127.0.0.1:5673:5672"
- "127.0.0.1:9092:9092"
env:
BLOB_SERVER: azurite
METADATA_SERVER: azurite
ACCEPT_EULA: "Y"
env:
PLUGINS: azure-event-hubs
SERVICES: azurite,azureeventhubsemulator
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/integration-test
azure-functions:
strategy:
fail-fast: false
matrix:
spec:
- eventhubs
- client
- servicebus
- cosmosdb
runs-on: ubuntu-latest
permissions:
id-token: write
services:
azurite:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0
ports:
- "127.0.0.1:10000:10000"
- "127.0.0.1:10001:10001"
- "127.0.0.1:10002:10002"
azureeventhubsemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/eventhubs-emulator@sha256:25ec4141efb69933a0c82e6a787fa147a3895519e7d236d4c41ba568e03100eb # 2.1.0
ports:
- "127.0.0.1:5673:5672"
- "127.0.0.1:9092:9092"
env:
BLOB_SERVER: azurite
METADATA_SERVER: azurite
ACCEPT_EULA: "Y"
azuresqledge:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7
ports:
- "127.0.0.1:1433:1433"
env:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
azureservicebusemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/servicebus-emulator@sha256:353913ece3d9124cebd40f4b91d00dd197846b8cf86eae9a4790698709c64a1d # 1.1.2
ports:
- "127.0.0.1:5672:5672"
- "127.0.0.1:5300:5300"
env:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
SQL_SERVER: azuresqledge
azurecosmosemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator@sha256:bf3bd3cbe3fae2005a0745f77b01d1fc8cd04112193f3ee32289ee15ee9ae5fa # vnext-preview
ports:
- "127.0.0.1:8081:8081"
- "127.0.0.1:8080:8080"
- "127.0.0.1:1234:1234"
env:
ACCEPT_EULA: "Y"
BLOB_SERVER: azurite
METADATA_SERVER: azurite
env:
PLUGINS: azure-functions
SERVICES: azuresqledge,azureservicebusemulator,azurite,azureeventhubsemulator,azurecosmosemulator
SPEC: ${{ matrix.spec }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Wait for Cosmos emulator to be ready
run: timeout 120 bash -c 'until curl -sf -o /dev/null --max-time 5 http://127.0.0.1:8080/ready; do sleep 3; done'
- name: Copy emulator config files
run: |
docker cp \
${{ github.workspace }}/packages/datadog-plugin-azure-functions/test/fixtures/eventhub-emulator-config.json \
${{ job.services.azureeventhubsemulator.id }}:/Eventhubs_Emulator/ConfigFiles/Config.json
docker cp \
${{ github.workspace }}/packages/datadog-plugin-azure-functions/test/fixtures/servicebus-emulator-config.json \
${{ job.services.azureservicebusemulator.id }}:/ServiceBus_Emulator/ConfigFiles/Config.json
- name: Restart emulators to pick up config changes
run: |
docker restart ${{ job.services.azureeventhubsemulator.id }}
docker restart ${{ job.services.azureservicebusemulator.id }}
- uses: ./.github/actions/plugins/integration-test-newest-lts
with:
flags: serverless-azure-functions-${{ matrix.spec }}
suffix: ${{ strategy.job-index }}
azure-service-bus:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
azureservicebusemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/servicebus-emulator@sha256:353913ece3d9124cebd40f4b91d00dd197846b8cf86eae9a4790698709c64a1d # 1.1.2
ports:
- "127.0.0.1:5672:5672"
- "127.0.0.1:5300:5300"
env:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
SQL_SERVER: azuresqledge
azuresqledge:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7
ports:
- "127.0.0.1:1433:1433"
env:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "Localtestpass1!"
options: >-
--health-cmd "bash -c 'exec 3<>/dev/tcp/localhost/1433'"
--health-interval 10s
--health-timeout 5s
--health-retries 10
--health-start-period 60s
env:
PLUGINS: azure-service-bus
SERVICES: azureservicebusemulator,azuresqledge
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Wait for Service Bus emulator to be ready
run: timeout 120 bash -c 'until nc -z localhost 5672; do sleep 3; done'
- uses: ./.github/actions/plugins/integration-test
azure-durable-functions:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
azurite:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0
ports:
- "127.0.0.1:10000:10000"
- "127.0.0.1:10001:10001"
- "127.0.0.1:10002:10002"
env:
PLUGINS: azure-durable-functions
SERVICES: azurite
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/integration-test-newest-lts
with:
flags: serverless-azure-durable-functions
azure-cosmos:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
azurite:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0
ports:
- "127.0.0.1:10000:10000"
- "127.0.0.1:10001:10001"
- "127.0.0.1:10002:10002"
azurecosmosemulator:
image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator@sha256:bf3bd3cbe3fae2005a0745f77b01d1fc8cd04112193f3ee32289ee15ee9ae5fa # vnext-preview
ports:
- "127.0.0.1:8081:8081"
- "127.0.0.1:8080:8080"
- "127.0.0.1:1234:1234"
env:
ACCEPT_EULA: "Y"
BLOB_SERVER: azurite
METADATA_SERVER: azurite
env:
PLUGINS: azure-cosmos
SERVICES: azurite,azurecosmosemulator
NODE_OPTIONS: '--experimental-global-webcrypto'
NODE_TLS_REJECT_UNAUTHORIZED: 0
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Wait for Cosmos emulator to be ready
run: timeout 120 bash -c 'until curl -sf -o /dev/null --max-time 5 http://127.0.0.1:8080/ready; do sleep 3; done'
- uses: ./.github/actions/plugins/test
google-cloud-pubsub:
runs-on: ubuntu-latest
permissions:
id-token: write
services:
pubsub:
image: ghcr.io/ridedott/pubsub-emulator@sha256:072d9ce6d89c5aa178e945c227cefdd98dc7a31ab10e027926fc7d55e70198bc # latest
ports:
- 8081:8081
env:
PLUGINS: google-cloud-pubsub
SERVICES: gpubsub
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/plugins/test