Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split the macos build into 2 jobs and parallelise #5390

Merged
merged 2 commits into from
Apr 4, 2024
Merged
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
64 changes: 58 additions & 6 deletions .azure-pipelines/ultimate-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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]
Expand Down Expand Up @@ -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
Expand Down
Loading