diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml
index d33fa76d9504f..841d5c71e31d9 100644
--- a/eng/pipelines/common/templates/runtimes/run-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml
@@ -609,28 +609,29 @@ jobs:
displayName: 'Upload artifacts SuperPMI $(CollectionName)-$(CollectionType) collection'
condition: always()
- # Add authenticated pip feed
- - task: PipAuthenticate@1
- displayName: 'Pip Authenticate'
- inputs:
- artifactFeeds: public/dotnet-public-pypi
- onlyAddExtraIndex: false
- condition: always()
+ - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ # Add authenticated pip feed
+ - task: PipAuthenticate@1
+ displayName: 'Pip Authenticate'
+ inputs:
+ artifactFeeds: public/dotnet-public-pypi
+ onlyAddExtraIndex: false
+ condition: always()
- # Ensure the Python azure-storage-blob package is installed before doing the upload.
- - script: $(PipScript) install --upgrade pip && $(PipScript) install azure.storage.blob==12.5.0 --force-reinstall && $(PipScript) install azure.identity==1.16.1 --force-reinstall
- displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
- condition: always()
+ # Ensure the Python azure-storage-blob package is installed before doing the upload.
+ - script: $(PipScript) install --upgrade pip && $(PipScript) install azure.storage.blob==12.5.0 --force-reinstall && $(PipScript) install azure.identity==1.16.1 --force-reinstall
+ displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
+ condition: always()
- - task: AzureCLI@2
- displayName: 'Upload SuperPMI $(CollectionName)-$(CollectionType) collection to Azure Storage'
- inputs:
- azureSubscription: 'superpmi-collect-rw'
- scriptType: 'pscore'
- scriptLocation: 'inlineScript'
- inlineScript: |
- $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch $(archType) -build_type $(buildConfig) -mch_files $(MergedMchFileLocation)$(CollectionName).$(CollectionType).$(MchFileTag).mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).x64.$(buildConfigUpper)
- condition: always()
+ - task: AzureCLI@2
+ displayName: 'Upload SuperPMI $(CollectionName)-$(CollectionType) collection to Azure Storage'
+ inputs:
+ azureSubscription: 'superpmi-collect-rw'
+ scriptType: 'pscore'
+ scriptLocation: 'inlineScript'
+ inlineScript: |
+ $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch $(archType) -build_type $(buildConfig) -mch_files $(MergedMchFileLocation)$(CollectionName).$(CollectionType).$(MchFileTag).mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).x64.$(buildConfigUpper)
+ condition: always()
- task: CopyFiles@2
displayName: Copying superpmi.log of all partitions
diff --git a/eng/pipelines/coreclr/superpmi-collect-test.yml b/eng/pipelines/coreclr/superpmi-collect-test.yml
new file mode 100644
index 0000000000000..dc9408c30a47d
--- /dev/null
+++ b/eng/pipelines/coreclr/superpmi-collect-test.yml
@@ -0,0 +1,371 @@
+# This job definition automates the SuperPMI collection process.
+
+trigger: none
+
+variables:
+ - template: /eng/pipelines/common/variables.yml
+
+extends:
+ template: /eng/pipelines/common/templates/pipeline-with-resources.yml
+ parameters:
+ stages:
+ - stage: Build
+ jobs:
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: checked
+ platforms:
+ - windows_x64
+ - linux_x64
+ jobParameters:
+ testGroup: outerloop
+ buildArgs: -s clr+libs+libs.tests -rc $(_BuildConfig) -c Release /p:ArchiveTests=true
+ timeoutInMinutes: 120
+ postBuildSteps:
+ - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/bin
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/helix
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: LibrariesTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ extraVariablesTemplates:
+ - template: /eng/pipelines/common/templates/runtimes/native-test-assets-variables.yml
+ parameters:
+ testGroup: outerloop
+ disableComponentGovernance: true # No shipping artifacts produced by this pipeline
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: checked
+ platforms:
+ - windows_x86
+ - windows_arm64
+ - osx_arm64
+ jobParameters:
+ testGroup: outerloop
+ buildArgs: -s clr+libs+libs.tests -rc $(_BuildConfig) -c Release /p:ArchiveTests=true
+ timeoutInMinutes: 120
+ postBuildSteps:
+ # Build CLR assets for x64 as well as the target as we need an x64 mcs
+ - template: /eng/pipelines/common/templates/global-build-step.yml
+ parameters:
+ buildArgs: -s clr.spmi -c $(_BuildConfig)
+ archParameter: -arch x64
+ - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/bin
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/helix
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: LibrariesTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ extraVariablesTemplates:
+ - template: /eng/pipelines/common/templates/runtimes/native-test-assets-variables.yml
+ parameters:
+ testGroup: outerloop
+ disableComponentGovernance: true # No shipping artifacts produced by this pipeline
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: checked
+ platforms:
+ - linux_arm
+ - linux_arm64
+ jobParameters:
+ testGroup: outerloop
+ buildArgs: -s clr+libs+libs.tests -rc $(_BuildConfig) -c Release /p:ArchiveTests=true
+ timeoutInMinutes: 120
+ postBuildSteps:
+ # Build CLR assets for x64 as well as the target as we need an x64 mcs
+ - template: /eng/pipelines/common/templates/global-build-step.yml
+ parameters:
+ buildArgs: -s clr.spmi -c $(_BuildConfig)
+ archParameter: -arch x64
+ container: linux_x64
+ - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/bin
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/helix
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: LibrariesTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+ extraVariablesTemplates:
+ - template: /eng/pipelines/common/templates/runtimes/native-test-assets-variables.yml
+ parameters:
+ testGroup: outerloop
+ disableComponentGovernance: true # No shipping artifacts produced by this pipeline
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+ buildConfig: checked
+ platforms:
+ - CoreClrTestBuildHost # Either osx_x64 or linux_x64
+ jobParameters:
+ testGroup: outerloop
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: pmi
+ collectionName: libraries
+ collectionUpload: false
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: crossgen2
+ collectionName: libraries
+ collectionUpload: false
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: run
+ collectionName: realworld
+ collectionUpload: false
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: run
+ collectionName: benchmarks
+ collectionUpload: false
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: run_tiered
+ collectionName: benchmarks
+ collectionUpload: false
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: run_pgo
+ collectionName: benchmarks
+ collectionUpload: false
+
+ #
+ # Collection of coreclr test run
+ #
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+ buildConfig: checked
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: superpmi
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ SuperPmiCollect: true
+ SuperPmiCollectionUpload: false
+ unifiedArtifactsName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
+
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
+ buildConfig: checked
+ platforms:
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_arm64
+ helixQueueGroup: ci
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: outerloop
+ liveLibrariesBuildConfig: Release
+ collectionType: nativeaot
+ collectionName: smoke_tests
+ collectionUpload: false
+
+ #
+ # Collection of libraries test run: normal
+ # Libraries Test Run using Release libraries, and Checked CoreCLR
+ #
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+ buildConfig: Release
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: superpmi
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testScope: innerloop
+ liveRuntimeBuildConfig: Checked
+ dependsOnTestBuildConfiguration: Release
+ dependsOnTestArchitecture: x64
+ scenarios:
+ - normal
+ SuperPmiCollect: true
+ SuperPmiCollectionName: libraries_tests
+ SuperPmiCollectionUpload: false
+ unifiedArtifactsName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_Checked
+ helixArtifactsName: LibrariesTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_Checked
+ unifiedBuildConfigOverride: checked
+
+ #
+ # Collection of libraries test run: no_tiered_compilation
+ # Libraries Test Run using Release libraries, and Checked CoreCLR
+ #
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+ buildConfig: Release
+ platforms:
+ - osx_arm64
+ - linux_arm
+ - linux_arm64
+ - linux_x64
+ - windows_x64
+ - windows_x86
+ - windows_arm64
+ helixQueueGroup: superpmi
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testScope: innerloop
+ liveRuntimeBuildConfig: Checked
+ dependsOnTestBuildConfiguration: Release
+ dependsOnTestArchitecture: x64
+ scenarios:
+ - no_tiered_compilation
+ SuperPmiCollect: true
+ SuperPmiCollectionName: libraries_tests_no_tiered_compilation
+ SuperPmiCollectionUpload: false
+ unifiedArtifactsName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_Checked
+ helixArtifactsName: LibrariesTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_Checked
+ unifiedBuildConfigOverride: checked
diff --git a/eng/pipelines/coreclr/templates/run-superpmi-collect-job.yml b/eng/pipelines/coreclr/templates/run-superpmi-collect-job.yml
index 3ef32f30b2d41..9bf2ed9d5bcee 100644
--- a/eng/pipelines/coreclr/templates/run-superpmi-collect-job.yml
+++ b/eng/pipelines/coreclr/templates/run-superpmi-collect-job.yml
@@ -104,6 +104,12 @@ jobs:
- name: InputDirectory
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr/obj/${{ parameters.osGroup }}.${{ parameters.archType }}.$(buildConfigUpper)/Managed/nativeaot/SmokeTests'
+ - name: PublicQueuesCLIArg
+ ${{ if ne(variables['System.TeamProject'], 'internal') }}:
+ value: '-public_queues'
+ ${{ else }}:
+ value: ''
+
workspace:
clean: all
pool:
@@ -116,7 +122,7 @@ jobs:
displayName: Enable python venv
condition: always()
- - script: $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi_collect_setup.py -payload_directory $(PayloadLocation) -source_directory $(Build.SourcesDirectory) -core_root_directory $(Core_Root_Dir) -arch $(archType) -platform $(osGroup) -mch_file_tag $(MchFileTag) -input_directory $(InputDirectory) -collection_name $(CollectionName) -collection_type $(CollectionType) -max_size 25 # size in MB
+ - script: $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi_collect_setup.py -payload_directory $(PayloadLocation) -source_directory $(Build.SourcesDirectory) -core_root_directory $(Core_Root_Dir) -arch $(archType) -platform $(osGroup) -mch_file_tag $(MchFileTag) -input_directory $(InputDirectory) -collection_name $(CollectionName) -collection_type $(CollectionType) $(PublicQueuesCLIArg) -max_size 25 # size in MB
displayName: ${{ format('SuperPMI setup ({0})', parameters.osGroup) }}
# Create required directories for merged mch collection and superpmi logs
@@ -139,7 +145,10 @@ jobs:
HelixAccessToken: $(HelixApiAccessToken)
HelixTargetQueues: $(Queue)
HelixPreCommands: $(HelixPreCommand)
- Creator: $(Creator)
+
+ ${{ if ne(variables['System.TeamProject'], 'internal') }}:
+ Creator: $(Build.DefinitionName)
+
WorkItemTimeout: 4:00 # 4 hours
WorkItemDirectory: '$(WorkItemDirectory)'
CorrelationPayloadDirectory: '$(CorrelationPayloadDirectory)'
@@ -170,25 +179,26 @@ jobs:
artifactName: 'SuperPMI_Collection_$(CollectionName)_$(CollectionType)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
displayName: ${{ format('Upload artifacts SuperPMI {0}-{1} collection', parameters.collectionName, parameters.collectionType) }}
- # Add authenticated pip feed
- - task: PipAuthenticate@1
- displayName: 'Pip Authenticate'
- inputs:
- artifactFeeds: public/dotnet-public-pypi
- onlyAddExtraIndex: false
-
- # Ensure the Python azure-storage-blob package is installed before doing the upload.
- - script: $(PipScript) install --upgrade pip && $(PipScript) install azure.storage.blob==12.5.0 --force-reinstall && $(PipScript) install azure.identity==1.16.1 --force-reinstall
- displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
-
- - task: AzureCLI@2
- displayName: ${{ format('Upload SuperPMI {0}-{1} collection to Azure Storage', parameters.collectionName, parameters.collectionType) }}
- inputs:
- azureSubscription: 'superpmi-collect-rw'
- scriptType: 'pscore'
- scriptLocation: 'inlineScript'
- inlineScript: |
- $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch $(archType) -build_type $(buildConfig) -mch_files $(MergedMchFileLocation)$(CollectionName).$(CollectionType).$(MchFileTag).mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).x64.$(buildConfigUpper)
+ - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ # Add authenticated pip feed
+ - task: PipAuthenticate@1
+ displayName: 'Pip Authenticate'
+ inputs:
+ artifactFeeds: public/dotnet-public-pypi
+ onlyAddExtraIndex: false
+
+ # Ensure the Python azure-storage-blob package is installed before doing the upload.
+ - script: $(PipScript) install --upgrade pip && $(PipScript) install azure.storage.blob==12.5.0 --force-reinstall && $(PipScript) install azure.identity==1.16.1 --force-reinstall
+ displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
+
+ - task: AzureCLI@2
+ displayName: ${{ format('Upload SuperPMI {0}-{1} collection to Azure Storage', parameters.collectionName, parameters.collectionType) }}
+ inputs:
+ azureSubscription: 'superpmi-collect-rw'
+ scriptType: 'pscore'
+ scriptLocation: 'inlineScript'
+ inlineScript: |
+ $(PythonScript) $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch $(archType) -build_type $(buildConfig) -mch_files $(MergedMchFileLocation)$(CollectionName).$(CollectionType).$(MchFileTag).mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).x64.$(buildConfigUpper)
# Always upload the available logs for diagnostics
- task: CopyFiles@2
diff --git a/eng/pipelines/coreclr/templates/superpmi-send-to-helix.yml b/eng/pipelines/coreclr/templates/superpmi-send-to-helix.yml
index 2a85d76c07885..daed124df4159 100644
--- a/eng/pipelines/coreclr/templates/superpmi-send-to-helix.yml
+++ b/eng/pipelines/coreclr/templates/superpmi-send-to-helix.yml
@@ -35,6 +35,7 @@ steps:
condition: ${{ parameters.condition }}
shouldContinueOnError: ${{ parameters.continueOnError }}
environment:
+ _Creator: ${{ parameters.Creator }}
TargetOS: ${{ parameters.osGroup }}
TargetArchitecture: ${{ parameters.archType }}
MchFileTag: $(MchFileTag)
@@ -56,5 +57,4 @@ steps:
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
- Creator: ${{ parameters.Creator }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
diff --git a/eng/pipelines/libraries/superpmi-postprocess-step.yml b/eng/pipelines/libraries/superpmi-postprocess-step.yml
index 343cb1ee58c11..5ee73194e463e 100644
--- a/eng/pipelines/libraries/superpmi-postprocess-step.yml
+++ b/eng/pipelines/libraries/superpmi-postprocess-step.yml
@@ -57,28 +57,29 @@ steps:
displayName: 'Upload artifacts SuperPMI ${{ parameters.SuperPmiCollectionName }}-${{ parameters.SuperPmiCollectionType }} collection'
condition: always()
- # Add authenticated pip feed
- - task: PipAuthenticate@1
- displayName: 'Pip Authenticate'
- inputs:
- artifactFeeds: public/dotnet-public-pypi
- onlyAddExtraIndex: false
- condition: always()
+ - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ # Add authenticated pip feed
+ - task: PipAuthenticate@1
+ displayName: 'Pip Authenticate'
+ inputs:
+ artifactFeeds: public/dotnet-public-pypi
+ onlyAddExtraIndex: false
+ condition: always()
- # Ensure the Python azure-storage-blob package is installed before doing the upload.
- - script: ${{ parameters.PipScript }} install --upgrade pip && ${{ parameters.PipScript }} install azure.storage.blob==12.5.0 --force-reinstall && ${{ parameters.PipScript }} install azure.identity==1.16.1 --force-reinstall
- displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
- condition: always()
+ # Ensure the Python azure-storage-blob package is installed before doing the upload.
+ - script: ${{ parameters.PipScript }} install --upgrade pip && ${{ parameters.PipScript }} install azure.storage.blob==12.5.0 --force-reinstall && ${{ parameters.PipScript }} install azure.identity==1.16.1 --force-reinstall
+ displayName: Upgrade Pip to latest and install azure-storage-blob and azure-identity Python packages
+ condition: always()
- - task: AzureCLI@2
- displayName: 'Upload SuperPMI ${{ parameters.SuperPmiCollectionName }}-${{ parameters.SuperPmiCollectionType }} collection to Azure Storage'
- inputs:
- azureSubscription: 'superpmi-collect-rw'
- scriptType: 'pscore'
- scriptLocation: 'inlineScript'
- inlineScript: |
- ${{ parameters.PythonScript }} $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch ${{ parameters.archType }} -build_type ${{ parameters.buildConfig }} -mch_files ${{ parameters.MergedMchFileLocation }}${{ parameters.SuperPmiCollectionName }}.${{ parameters.SuperPmiCollectionType }}.${{ parameters.osGroup }}.${{ parameters.archType }}.${{ parameters.buildConfig }}.mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/${{ parameters.osGroup }}.x64.${{ parameters.buildConfigUpper }}
- condition: always()
+ - task: AzureCLI@2
+ displayName: 'Upload SuperPMI ${{ parameters.SuperPmiCollectionName }}-${{ parameters.SuperPmiCollectionType }} collection to Azure Storage'
+ inputs:
+ azureSubscription: 'superpmi-collect-rw'
+ scriptType: 'pscore'
+ scriptLocation: 'inlineScript'
+ inlineScript: |
+ ${{ parameters.PythonScript }} $(Build.SourcesDirectory)/src/coreclr/scripts/superpmi.py upload -log_level DEBUG -arch ${{ parameters.archType }} -build_type ${{ parameters.buildConfig }} -mch_files ${{ parameters.MergedMchFileLocation }}${{ parameters.SuperPmiCollectionName }}.${{ parameters.SuperPmiCollectionType }}.${{ parameters.osGroup }}.${{ parameters.archType }}.${{ parameters.buildConfig }}.mch -core_root $(Build.SourcesDirectory)/artifacts/bin/coreclr/${{ parameters.osGroup }}.x64.${{ parameters.buildConfigUpper }}
+ condition: always()
- task: CopyFiles@2
displayName: Copying superpmi.log of all partitions
diff --git a/src/coreclr/scripts/superpmi-collect.proj b/src/coreclr/scripts/superpmi-collect.proj
index 2b15fac569813..00d0a89da206b 100644
--- a/src/coreclr/scripts/superpmi-collect.proj
+++ b/src/coreclr/scripts/superpmi-collect.proj
@@ -148,6 +148,7 @@
false
false
+ $(_Creator)
diff --git a/src/coreclr/scripts/superpmi_collect_setup.py b/src/coreclr/scripts/superpmi_collect_setup.py
index 40c3a768e6828..c1e325e8daeac 100644
--- a/src/coreclr/scripts/superpmi_collect_setup.py
+++ b/src/coreclr/scripts/superpmi_collect_setup.py
@@ -53,6 +53,7 @@
parser.add_argument("-mch_file_tag", help="Tag to be used to mch files")
parser.add_argument("-input_directory", help="Directory containing assemblies which SuperPMI will use for collection (for pmi/crossgen2 collections)")
parser.add_argument("-max_size", help="Max size of each partition in MB (for pmi/crossgen2 collections)")
+parser.add_argument("-public_queues", action="store_true", help="Whether to set up for public queues (or internal ones, if not specified)")
is_windows = platform.system() == "Windows"
@@ -264,6 +265,11 @@ def setup_args(args):
max_size) * 1000 * 1000 if max_size is not None and max_size.isnumeric() else 0
# Convert to MB
)
+
+ coreclr_args.verify(args,
+ "public_queues",
+ lambda unused: True,
+ "Whether to use public queues (or, if not specified, internal queues)")
return coreclr_args
@@ -450,22 +456,32 @@ def main(main_args):
arch = coreclr_args.arch
platform_name = coreclr_args.platform.lower()
helix_source_prefix = "official"
- creator = ""
- ci = True
# Determine the Helix queue name to use when running jobs.
- # Note that we run in the 'internal', not 'public', instance, so we must use 'internal' queues defined in helix-queues-setup.yml.
- if platform_name == "windows":
- helix_queue = "Windows.11.Arm64" if arch == "arm64" else "Windows.10.Amd64.X86.Rt"
- elif platform_name == "linux":
- if arch == "arm":
- helix_queue = "(Debian.12.Arm32)Ubuntu.2004.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm32v7"
- elif arch == "arm64":
- helix_queue = "(Ubuntu.1804.Arm64)Ubuntu.2004.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8"
- else:
- helix_queue = "Ubuntu.2204.Amd64"
- elif platform_name == "osx":
- helix_queue = "OSX.1200.ARM64" if arch == "arm64" else "OSX.1200.Amd64"
+ if coreclr_args.public_queues:
+ if platform_name == "windows":
+ helix_queue = "Windows.11.Arm64.Open" if arch == "arm64" else "Windows.10.Amd64.Open"
+ elif platform_name == "linux":
+ if arch == "arm":
+ helix_queue = "(Debian.12.Arm32.Open)Ubuntu.2004.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm32v7"
+ elif arch == "arm64":
+ helix_queue = "(Ubuntu.2004.Arm64.Open)Ubuntu.2004.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-helix-arm64v8"
+ else:
+ helix_queue = "Ubuntu.2204.Amd64.Open"
+ elif platform_name == "osx":
+ helix_queue = "OSX.1200.ARM64.Open" if arch == "arm64" else "OSX.1200.Amd64.Open"
+ else:
+ if platform_name == "windows":
+ helix_queue = "Windows.11.Arm64" if arch == "arm64" else "Windows.10.Amd64.X86.Rt"
+ elif platform_name == "linux":
+ if arch == "arm":
+ helix_queue = "(Debian.12.Arm32)Ubuntu.2004.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-helix-arm32v7"
+ elif arch == "arm64":
+ helix_queue = "(Ubuntu.1804.Arm64)Ubuntu.2004.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8"
+ else:
+ helix_queue = "Ubuntu.2204.Amd64"
+ elif platform_name == "osx":
+ helix_queue = "OSX.1200.ARM64" if arch == "arm64" else "OSX.1200.Amd64"
# Copy the superpmi scripts
@@ -607,7 +623,6 @@ def make_readable(folder_name):
set_pipeline_variable("InputArtifacts", input_artifacts)
set_pipeline_variable("Python", ' '.join(get_python_name()))
set_pipeline_variable("Architecture", arch)
- set_pipeline_variable("Creator", creator)
set_pipeline_variable("Queue", helix_queue)
set_pipeline_variable("HelixSourcePrefix", helix_source_prefix)
set_pipeline_variable("MchFileTag", coreclr_args.mch_file_tag)