-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Split Helix into separate AzDO jobs per queue, enable verbose xunit, configurable timeout #38003
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
Changes from all commits
29b93bb
80d6bc1
43bc513
636d97e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -199,21 +199,104 @@ extends: | |
| sdl: | ||
| binskim: | ||
| preReleaseVersion: '' | ||
| - job: Helix | ||
| - job: Helix_Windows | ||
| displayName: 'Helix Windows' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: Windows.10.Amd64 | ||
| - name: _HelixAccessToken | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
| displayName: 'Clear NuGet caches' | ||
| condition: succeeded() | ||
| inputs: | ||
| command: custom | ||
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
|
|
||
| - job: Helix_macOS_x64 | ||
| displayName: 'Helix macOS x64' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: OSX.15.Amd64 | ||
| - name: _HelixAccessToken | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
| displayName: 'Clear NuGet caches' | ||
| condition: succeeded() | ||
| inputs: | ||
| command: custom | ||
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
|
|
||
| - job: Helix_macOS_ARM64 | ||
| displayName: 'Helix macOS ARM64' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| # Rely on task Arcade injects, not auto-injected build step. | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: Windows.10.Amd64;OSX.15.Amd64;OSX.15.ARM64;Ubuntu.2204.Amd64.XL@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-sqlserver-amd64;Ubuntu.2204.Amd64.XL;Ubuntu.2204.Amd64 | ||
| value: OSX.15.ARM64 | ||
| - name: _HelixAccessToken | ||
| # Needed for internal queues | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
|
|
@@ -224,25 +307,147 @@ extends: | |
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - ${{ if ne(variables['System.TeamProject'], 'public') }}: | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 1 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send job to helix | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
|
|
||
| - job: Helix_Ubuntu_SqlServer | ||
| displayName: 'Helix Ubuntu SQL Server' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: Ubuntu.2204.Amd64.XL@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-helix-sqlserver-amd64 | ||
| - name: _HelixAccessToken | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
| displayName: 'Clear NuGet caches' | ||
| condition: succeeded() | ||
| inputs: | ||
| command: custom | ||
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| # We need to set this env var to publish helix results to Azure Dev Ops | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| MSSQL_SA_PASSWORD: "PLACEHOLDERPass$$w0rd" | ||
| # Work-around for https://github.com/dotnet/runtime/issues/70758 | ||
| COMPlus_EnableWriteXorExecute: 0 | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
|
|
||
| - job: Helix_Ubuntu_Cosmos | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need a Cosmos-specific job? Especially now that we can test against the Linux-based emulator, shouldn't Cosmos testing just happen as part of all testing jobs, like SQLite?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can look at the run times once this is running and combine them later
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I meant this more in terms of simplicity, not of run times optimizations; like why would we have a separate job in Helix specifically for Cosmos and not for SQLite... But no particular blocking from my side, am OK to merge as-is. |
||
| displayName: 'Helix Ubuntu Cosmos' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: Ubuntu.2204.Amd64.XL | ||
| - name: _HelixAccessToken | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
| displayName: 'Clear NuGet caches' | ||
| condition: succeeded() | ||
| inputs: | ||
| command: custom | ||
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
|
|
||
| - job: Helix_Ubuntu | ||
| displayName: 'Helix Ubuntu' | ||
| timeoutInMinutes: 180 | ||
| pool: | ||
| name: $(DncEngInternalBuildPool) | ||
| demands: ImageOverride -equals 1es-windows-2022 | ||
| os: windows | ||
| variables: | ||
| - skipComponentGovernanceDetection: true | ||
| - name: _HelixBuildConfig | ||
| value: $(_BuildConfig) | ||
| - name: HelixTargetQueues | ||
| value: Ubuntu.2204.Amd64 | ||
| - name: _HelixAccessToken | ||
| value: $(HelixApiAccessToken) | ||
| steps: | ||
| - task: NuGetCommand@2 | ||
| displayName: 'Clear NuGet caches' | ||
| condition: succeeded() | ||
| inputs: | ||
| command: custom | ||
| arguments: 'locals all -clear' | ||
| - template: /eng/common/templates-official/steps/enable-internal-sources.yml | ||
| - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml | ||
| - template: /eng/common/core-templates/steps/get-delegation-sas.yml | ||
| parameters: | ||
| federatedServiceConnection: 'dotnetbuilds-internal-read' | ||
| outputVariableName: 'dotnetbuilds-internal-container-read-token' | ||
| expiryInHours: 3 | ||
| base64Encode: false | ||
| storageAccount: dotnetbuilds | ||
| container: internal | ||
| permissions: rl | ||
| - script: restore.cmd -ci /p:configuration=$(_BuildConfig) $(_InternalRuntimeDownloadArgs) | ||
| displayName: Restore packages | ||
| - script: .dotnet\dotnet build eng\helix.proj /restore /t:Test /p:configuration=$(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog $(_InternalRuntimeDownloadArgs) | ||
| displayName: Send tests to helix | ||
| env: | ||
| HelixAccessToken: $(_HelixAccessToken) | ||
| SYSTEM_ACCESSTOKEN: $(System.AccessToken) | ||
| DotNetBuildsInternalReadSasToken: $(dotnetbuilds-internal-container-read-token) | ||
Uh oh!
There was an error while loading. Please reload this page.