Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
230 changes: 0 additions & 230 deletions .azure-pipelines/ultimate-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4676,189 +4676,6 @@ stages:
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)

- stage: throughput
condition: and(succeeded(), eq(variables.isMainRepository, true))
dependsOn: [package_linux, package_arm64, build_windows_tracer, generate_variables, merge_commit_id]
variables:
targetShaId: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.sha']]
targetBranch: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.branch']]
isAppSecChanged: $[stageDependencies.generate_variables.generate_variables_job.outputs['generate_variables_step.isAppSecChanged'] ]
# By default all throughput tests happen on release or master branches only, or when running a benchmarks only build. Overridable by setting 'run_extended_throughput_tests' to true
runExtendedThroughputTests: $[or(eq(variables.isMainOrReleaseBranch, 'true'), not(eq(variables['isBenchmarksOnlyBuild'], 'False')), eq(variables.run_extended_throughput_tests, 'true'))]
CrankDir: $(System.DefaultWorkingDirectory)/tracer/build/crank
jobs:
- template: steps/update-github-status-jobs.yml
parameters:
jobs: [Linux64, LinuxArm64]
allowSkipped: true
#### Throughput Linux 64, Windows 64, Linux arm 64

- job: Linux64
timeoutInMinutes: 90
pool: Throughput

steps:
- template: steps/clone-repo.yml
parameters:
targetShaId: $(targetShaId)
targetBranch: $(targetBranch)

- task: DownloadPipelineArtifact@2
displayName: Download linux native binary
inputs:
artifact: linux-monitoring-home-linux-x64
path: $(System.DefaultWorkingDirectory)/tracer/tracer-home-linux

- task: DownloadPipelineArtifact@2
displayName: Download Datadog.Trace.Manual
inputs:
artifact: build-windows-working-directory
itemPattern: tracer/src/Datadog.Trace.Manual/bin/Release/netcoreapp3.1/Datadog.Trace.Manual.dll
path: $(Agent.TempDirectory)

- script: |
mkdir -p tracer/bin/netcoreapp3.1
cp $(Agent.TempDirectory)/tracer/src/Datadog.Trace.Manual/bin/Release/netcoreapp3.1/Datadog.Trace.Manual.dll tracer/bin/netcoreapp3.1/
test ! -s "tracer/tracer-home-linux/linux-x64/Datadog.Trace.ClrProfiler.Native.so" && echo "tracer/tracer-home-linux/linux-x64/Datadog.Trace.ClrProfiler.Native.so (native loader) does not exist" && exit 1
test ! -s "tracer/tracer-home-linux/linux-x64/Datadog.Tracer.Native.so" && echo "tracer/tracer-home-linux/linux-x64/Datadog.Tracer.Native.so does not exist" && exit 1
test ! -s "tracer/tracer-home-linux/linux-x64/libddwaf.so" && echo "tracer/tracer-home-linux/linux-x64/libddwaf.so does not exist" && exit 1
test ! -s "tracer/bin/netcoreapp3.1/Datadog.Trace.Manual.dll" && echo "tracer/bin/netcoreapp3.1/Datadog.Trace.Manual.dll does not exist" && exit 1
mkdir -p $(CrankDir)/results/logs
cd $(CrankDir)
chmod +x ./run.sh
./run.sh "linux" "$(runExtendedThroughputTests)"
displayName: Crank tracer
env:
DD_SERVICE: dd-trace-dotnet
DD_ENV: CI
DD_CIVISIBILITY_AGENTLESS_ENABLED: true
DD_API_KEY: $(ddApiKey)

- script: |
cp $(CrankDir)/*.json $(CrankDir)/results
displayName: Copy the results to results dir

- publish: "$(CrankDir)/results"
displayName: Publish results
# We don't include the JobAttempt in this case, because we rely on a specific name
# and an error in the throughput tests probably means no usable data, so dont
# bother trying to upload these in case of failure, which means we can retry the
# stages without issue
artifact: crank_linux_x64_1

- job: LinuxArm64
timeoutInMinutes: 90
pool: Throughput

steps:
- template: steps/clone-repo.yml
parameters:
targetShaId: $(targetShaId)
targetBranch: $(targetBranch)
- task: DownloadPipelineArtifact@2
displayName: Download arm64 native binary
inputs:
artifact: linux-monitoring-home-linux-arm64
path: $(System.DefaultWorkingDirectory)/tracer/tracer-home-linux-arm64

- task: DownloadPipelineArtifact@2
displayName: Download Datadog.Trace.Manual
inputs:
artifact: build-windows-working-directory
itemPattern: tracer/src/Datadog.Trace.Manual/bin/Release/netcoreapp3.1/Datadog.Trace.Manual.dll
path: $(Agent.TempDirectory)

- script: |
mkdir -p tracer/bin/netcoreapp3.1
cp $(Agent.TempDirectory)/tracer/src/Datadog.Trace.Manual/bin/Release/netcoreapp3.1/Datadog.Trace.Manual.dll tracer/bin/netcoreapp3.1/
test ! -s "tracer/tracer-home-linux-arm64/linux-arm64/Datadog.Trace.ClrProfiler.Native.so" && echo "tracer/tracer-home-linux-arm64/linux-arm64/Datadog.Trace.ClrProfiler.Native.so (native loader) does not exist" && exit 1
test ! -s "tracer/tracer-home-linux-arm64/linux-arm64/Datadog.Tracer.Native.so" && echo "tracer/tracer-home-linux-arm64/linux-arm64/Datadog.Tracer.Native.so does not exist" && exit 1
test ! -s "tracer/tracer-home-linux-arm64/linux-arm64/libddwaf.so" && echo "tracer/tracer-home-linux-arm64/linux-arm64/libddwaf.so does not exist" && exit 1
test ! -s "tracer/bin/netcoreapp3.1/Datadog.Trace.Manual.dll" && echo "tracer/bin/netcoreapp3.1/Datadog.Trace.Manual.dll does not exist" && exit 1
mkdir -p $(CrankDir)/results
cd $(System.DefaultWorkingDirectory)/tracer/build/crank
chmod +x ./run.sh
./run.sh "linux_arm64" "$(runExtendedThroughputTests)"
displayName: Crank
env:
DD_SERVICE: dd-trace-dotnet
DD_ENV: CI
DD_CIVISIBILITY_AGENTLESS_ENABLED: true
DD_API_KEY: $(ddApiKey)

- script: |
cp $(CrankDir)/*.json $(CrankDir)/results
displayName: Copy the results to results dir

- publish: "$(CrankDir)/results"
displayName: Publish results
# We don't include the JobAttempt in this case, because we rely on a specific name
# and an error in the throughput tests probably means no usable data, so dont
# bother trying to upload these in case of failure, which means we can retry the
# stages without issue
artifact: crank_linux_arm64_1

- stage: throughput_profiler
condition: >
and(succeeded(),
eq(variables.isMainRepository, true),
or(
eq(variables.isMainOrReleaseBranch, true),
eq(dependencies.generate_variables.outputs['generate_variables_job.generate_variables_step.IsProfilerChanged'], 'True')))
dependsOn: [package_linux, generate_variables, build_windows_tracer, merge_commit_id]
variables:
targetShaId: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.sha']]
targetBranch: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.branch']]
crankDir: $(System.DefaultWorkingDirectory)/profiler/build/crank
pool: Throughput-profiler
jobs:
- template: steps/update-github-status-jobs.yml
parameters:
jobs: [Linux64]
#### Throughput Linux 64, windows 64, linux arm 64

- job: Linux64
timeoutInMinutes: 90

steps:
- template: steps/clone-repo.yml
parameters:
targetShaId: $(targetShaId)
targetBranch: $(targetBranch)

- task: DownloadPipelineArtifact@2
displayName: Download linux native binary
inputs:
artifact: linux-monitoring-home-linux-x64
path: $(System.DefaultWorkingDirectory)/monitoring-home-linux

- script: |
test ! -s "monitoring-home-linux/linux-x64/Datadog.Trace.ClrProfiler.Native.so" && echo "monitoring-home-linux/linux-x64/Datadog.Trace.ClrProfiler.Native.so (native loader) does not exist" && exit 1
test ! -s "monitoring-home-linux/linux-x64/Datadog.Tracer.Native.so" && echo "monitoring-home-linux/linux-x64/Datadog.Tracer.Native.so does not exist" && exit 1
test ! -s "monitoring-home-linux/linux-x64/libddwaf.so" && echo "monitoring-home-linux/linux-x64/libddwaf.so does not exist" && exit 1
mkdir -p $(crankDir)/results
cd $(crankDir)
chmod +x ./run.sh
./run.sh "linux"
displayName: Crank profiler
env:
DD_SERVICE: dd-trace-dotnet-profiler
DD_ENV: CI
DD_CIVISIBILITY_AGENTLESS_ENABLED: true
DD_API_KEY: $(ddApiKey)

- script: |
cp $(crankDir)/*.json $(crankDir)/results
displayName: Copy the results to results dir
condition: succeededOrFailed()
continueOnError: true

- publish: "$(crankDir)/results"
displayName: Publish results
artifact: crank_profiler_linux_x64_$(System.JobAttempt)
condition: succeededOrFailed()
continueOnError: true

- stage: coverage
condition: and(succeeded(), eq(variables['isBenchmarksOnlyBuild'], 'False'), eq(variables['runCodeCoverage'], 'True'))
dependsOn:
Expand Down Expand Up @@ -6999,51 +6816,6 @@ stages:

displayName: Run artifact test (expecting failure)

- stage: compare_throughput
condition: and(succeeded(), eq(variables.isMainRepository, true))
dependsOn: [throughput, merge_commit_id]
variables:
targetShaId: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.sha']]
targetBranch: $[ stageDependencies.merge_commit_id.fetch.outputs['set_sha.branch']]
jobs:
- job: compare
timeoutInMinutes: 60 #default value
pool:
vmImage: windows-2022

steps:
- template: steps/clone-repo.yml
parameters:
targetShaId: $(targetShaId)
targetBranch: $(targetBranch)

- template: steps/install-latest-dotnet-sdk.yml

- task: DownloadPipelineArtifact@2
displayName: Download crank_linux_arm64_1
continueOnError: true
inputs:
artifact: crank_linux_arm64_1
path: $(System.DefaultWorkingDirectory)/artifacts/build_data/throughput/current/crank_linux_arm64_1

- task: DownloadPipelineArtifact@2
displayName: Download crank_linux_x64_1
continueOnError: true
inputs:
artifact: crank_linux_x64_1
path: $(System.DefaultWorkingDirectory)/artifacts/build_data/throughput/current/crank_linux_x64_1

- script: tracer\build.cmd CompareThroughputResults
displayName: Compare Crank results
env:
PR_NUMBER: $(System.PullRequest.PullRequestNumber)
AZURE_DEVOPS_TOKEN: $(AZURE_DEVOPS_TOKEN)
GITHUB_TOKEN: $(GITHUB_TOKEN)

- publish: $(System.DefaultWorkingDirectory)/artifacts/build_data/throughput/throughput_report.md
displayName: Upload report
artifact: crank_throughput_report

- stage: trace_pipeline
condition: |
and(
Expand All @@ -7070,7 +6842,6 @@ stages:
- exploration_tests_windows
- exploration_tests_linux
- benchmarks
- throughput
- tool_artifacts_tests_windows
- tool_artifacts_tests_linux
- upload_to_azure
Expand All @@ -7093,7 +6864,6 @@ stages:
- msi_installer_smoke_tests
- tracer_home_smoke_tests
- coverage
- compare_throughput
- system_tests
jobs:
- job: build_and_run
Expand Down
Loading