Skip to content

v5.76.0 proposal

v5.76.0 proposal #5152

name: Test Optimization
on:
pull_request:
push:
branches:
- master
schedule:
- cron: 0 4 * * *
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
env:
MOCHA_OPTIONS: ${{ github.ref == 'refs/heads/master' && '--retries 1' || '' }}
jobs:
benchmarks-e2e:
name: Performance and correctness tests
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: DataDog/dd-octo-sts-action@acaa02eee7e3bb0839e4272dacb37b8f3b58ba80 # v1.0.3
id: octo-sts
with:
scope: DataDog/test-environment
policy: dd-trace-js
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
token: ${{ steps.octo-sts.outputs.token }}
- uses: ./.github/actions/node/oldest-maintenance-lts
- name: Test Optimization Performance Overhead Test
run: yarn bench:e2e:test-optimization
env:
GITHUB_TOKEN: ${{ steps.octo-sts.outputs.token }}
integration:
strategy:
matrix:
version: [oldest, maintenance, active, latest]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.version }}
- uses: ./.github/actions/install
- run: yarn test:integration:testopt
integration-playwright:
strategy:
matrix:
node-version: [oldest, latest]
playwright-version: [oldest, latest]
name: integration-playwright (${{ matrix.playwright-version}}, node-${{ matrix.node-version }})
runs-on: ubuntu-latest
container:
image: rochdev/playwright-tools@sha256:99a8e8df71996aa7797f83e98df50bc550c7c6eaf0b701f19fa4f928f2cf93b2 # 1.54.1-3
env:
DD_SERVICE: dd-trace-js-integration-tests
DD_CIVISIBILITY_AGENTLESS_ENABLED: 1
DD_API_KEY: ${{ secrets.DD_API_KEY }}
OPTIONS_OVERRIDE: 1
PLAYWRIGHT_VERSION: ${{ matrix.playwright-version }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.node-version }}
- uses: ./.github/actions/install
- run: yarn test:integration:playwright
env:
NODE_OPTIONS: '-r ./ci/init'
integration-mocha:
strategy:
matrix:
version: [oldest, latest]
mocha-version: [5.2.0, latest]
runs-on: ubuntu-latest
env:
DD_SERVICE: dd-trace-js-integration-tests
DD_CIVISIBILITY_AGENTLESS_ENABLED: 1
DD_API_KEY: ${{ secrets.DD_API_KEY }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.version }}
- uses: ./.github/actions/install
- run: yarn test:integration:mocha
env:
NODE_OPTIONS: '-r ./ci/init'
MOCHA_VERSION: ${{ matrix.mocha-version }}
integration-ci:
strategy:
matrix:
version: [oldest, latest]
framework: [cucumber, selenium, jest]
runs-on: ubuntu-latest
env:
DD_SERVICE: dd-trace-js-integration-tests
DD_CIVISIBILITY_AGENTLESS_ENABLED: 1
DD_API_KEY: ${{ secrets.DD_API_KEY }}
OPTIONS_OVERRIDE: 1
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.version }}
- name: Install Google Chrome
run: |
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
if [ $? -ne 0 ]; then echo "Failed to add Google key"; exit 1; fi
sudo apt-get update
sudo apt-get install -y google-chrome-stable
if [ $? -ne 0 ]; then echo "Failed to install Google Chrome"; exit 1; fi
if: ${{ matrix.framework == 'selenium' }}
- name: Install ChromeDriver
run: |
export CHROME_VERSION=$(google-chrome --version)
CHROME_DRIVER_DOWNLOAD_URL=$(node --experimental-fetch scripts/get-chrome-driver-download-url.js)
wget -q "$CHROME_DRIVER_DOWNLOAD_URL"
if [ $? -ne 0 ]; then echo "Failed to download ChromeDriver"; exit 1; fi
unzip chromedriver-linux64.zip
sudo mv chromedriver-linux64/chromedriver /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver
if: ${{ matrix.framework == 'selenium' }}
- uses: ./.github/actions/install
- run: yarn test:integration:${{ matrix.framework }}
env:
NODE_OPTIONS: '-r ./ci/init'
integration-cypress:
strategy:
matrix:
version: [eol, oldest, latest]
# 6.7.0 is the minimum version we support in <=5
# 10.2.0 is the minimum version we support in >=6
# 14.5.4 is the latest version that supports Node 18
# The logic to decide whether the tests run lives in integration-tests/cypress/cypress.spec.js
cypress-version: [6.7.0, 10.2.0, 14.5.4, latest]
module-type: ['commonJS', 'esm']
runs-on: ubuntu-latest
env:
DD_SERVICE: dd-trace-js-integration-tests
DD_CIVISIBILITY_AGENTLESS_ENABLED: 1
DD_API_KEY: ${{ secrets.DD_API_KEY }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.version }}
- uses: ./.github/actions/install
- run: yarn config set ignore-engines true
- run: yarn test:integration:cypress --ignore-engines
env:
CYPRESS_VERSION: ${{ matrix.cypress-version }}
NODE_OPTIONS: '-r ./ci/init'
CYPRESS_MODULE_TYPE: ${{ matrix.module-type }}
OPTIONS_OVERRIDE: 1
integration-vitest:
runs-on: ubuntu-latest
strategy:
matrix:
version: [oldest, latest]
env:
DD_SERVICE: dd-trace-js-integration-tests
DD_CIVISIBILITY_AGENTLESS_ENABLED: 1
DD_API_KEY: ${{ secrets.DD_API_KEY }}
OPTIONS_OVERRIDE: 1
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/node
with:
version: ${{ matrix.version }}
- uses: ./.github/actions/install
- run: yarn test:integration:vitest
env:
NODE_OPTIONS: '-r ./ci/init'
plugin-cucumber:
runs-on: ubuntu-latest
env:
PLUGINS: cucumber
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/plugins/test
with:
dd_api_key: ${{ secrets.DD_API_KEY }}
# TODO: fix performance issues and test more Node versions
plugin-cypress:
runs-on: ubuntu-latest
env:
PLUGINS: cypress
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: yarn test:plugins:ci
- if: always()
uses: ./.github/actions/testagent/logs
with:
suffix: plugins-${{ github.job }}
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
- uses: DataDog/junit-upload-github-action@762867566348d59ac9bcf479ebb4ec040db8940a # v2.0.0
if: always()
with:
api_key: ${{ secrets.DD_API_KEY }}
service: dd-trace-js-tests
# TODO: fix performance issues and test more Node versions
plugin-jest:
runs-on: ubuntu-latest
env:
PLUGINS: jest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./.github/actions/testagent/start
- uses: ./.github/actions/node/latest
- uses: ./.github/actions/install
- run: yarn test:plugins:ci
- if: always()
uses: ./.github/actions/testagent/logs
with:
suffix: plugins-${{ github.job }}
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
- uses: DataDog/junit-upload-github-action@762867566348d59ac9bcf479ebb4ec040db8940a # v2.0.0
if: always()
with:
api_key: ${{ secrets.DD_API_KEY }}
service: dd-trace-js-tests