feat(openfeature): improve exposure buffering #17952
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |