diff --git a/.azure-pipelines/ultimate-pipeline.yml b/.azure-pipelines/ultimate-pipeline.yml index 2b8301bc3921..1e13c9234646 100644 --- a/.azure-pipelines/ultimate-pipeline.yml +++ b/.azure-pipelines/ultimate-pipeline.yml @@ -652,9 +652,9 @@ stages: jobs: - template: steps/update-github-status-jobs.yml parameters: - jobs: [build] + jobs: [native_tracer, native_loader_and_managed, upload_artifacts] - - job: build + - job: native_tracer timeoutInMinutes: 60 #default value dependsOn: [ ] pool: @@ -666,18 +666,63 @@ stages: targetBranch: $(targetBranch) - template: steps/install-latest-dotnet-sdk.yml - - script: ./tracer/build.sh BuildTracerHome BuildNativeLoader - displayName: Build tracer home + - script: ./tracer/build.sh CreateRequiredDirectories CompileManagedLoader CompileNativeSrc PublishNativeTracer + displayName: Build native-tracer retryCountOnTaskFailure: 1 - publish: $(monitoringHome) - displayName: Uploading macos profiler artifact - artifact: macos-tracer-home + displayName: Uploading macos native tracer artifact + artifact: build-macos-native_tracer + + - job: native_loader_and_managed + timeoutInMinutes: 60 #default value + dependsOn: [ ] + pool: + vmImage: macos-11 + steps: + - template: steps/clone-repo.yml + parameters: + targetShaId: $(targetShaId) + targetBranch: $(targetBranch) + - template: steps/install-latest-dotnet-sdk.yml + + # The CreateRootDescriptorsFile tasks expects the native loader but we build that in the other stage + - script: ./tracer/build.sh BuildManagedTracerHome BuildNativeLoader --skip CreateRootDescriptorsFile + displayName: Build managed tracer + native loader + retryCountOnTaskFailure: 1 + + - publish: $(monitoringHome) + displayName: Uploading macos native tracer artifact + artifact: build-macos-native_loader - publish: $(System.DefaultWorkingDirectory) displayName: Upload working directory after the build artifact: build-macos-working-directory + - job: upload_artifacts + timeoutInMinutes: 60 #default value + dependsOn: [native_tracer, native_loader_and_managed ] + pool: + vmImage: macos-11 + steps: + - checkout: none + + - task: DownloadPipelineArtifact@2 + displayName: Download native tracer + inputs: + artifact: build-macos-native_tracer + path: $(monitoringHome) + + - task: DownloadPipelineArtifact@2 + displayName: Download native loader and managed + inputs: + artifact: build-macos-native_loader + path: $(monitoringHome) + + - publish: $(monitoringHome) + displayName: Uploading combined macos profiler artifact + artifact: macos-tracer-home + - stage: package_windows condition: and(succeeded(), eq(variables['isBenchmarksOnlyBuild'], 'False')) dependsOn: [ build_windows_tracer, build_windows_profiler, build_dd_dotnet_windows, merge_commit_id] @@ -1059,6 +1104,13 @@ stages: parameters: artifact: build-macos-working-directory + # The native tracer is built and uploaded separately for perf reasons, so needs to be explicitly downloaded here + - task: DownloadPipelineArtifact@2 + displayName: Download native tracer + inputs: + artifact: build-macos-native_tracer + path: $(monitoringHome) + - script: ./tracer/build.sh BuildAndRunManagedUnitTests --code-coverage $(runCodeCoverage) displayName: Build and Test retryCountOnTaskFailure: 1