зеркало из https://github.com/dotnet/aspnetcore.git
180 строки
6.0 KiB
YAML
180 строки
6.0 KiB
YAML
#
|
|
# See https://learn.microsoft.com/azure/devops/pipelines/yaml-schema for details on this file.
|
|
#
|
|
|
|
# Configure which branches trigger builds
|
|
# We want to run quarantined tests on release/6.0 and later as well as on PRs
|
|
trigger:
|
|
batch: true
|
|
branches:
|
|
include:
|
|
- main
|
|
- release/*
|
|
|
|
# Run PR validation on branches that include Helix tests
|
|
pr:
|
|
autoCancel: true
|
|
branches:
|
|
include:
|
|
- main
|
|
- release/*
|
|
paths:
|
|
exclude:
|
|
- .devcontainer/*
|
|
- .github/*
|
|
- .vscode/*
|
|
- docs/*
|
|
- '**/*.md'
|
|
- LICENSE.TXT
|
|
- THIRD-PARTY-NOTICES.TXT
|
|
|
|
schedules:
|
|
- cron: "0 */4 * * *"
|
|
displayName: Every 4 hours test run
|
|
branches:
|
|
include:
|
|
- main
|
|
always: true
|
|
|
|
variables:
|
|
- name: _UseHelixOpenQueues
|
|
value: ${{ ne(variables['System.TeamProject'], 'internal') }}
|
|
- name: Codeql.Enabled
|
|
value: false
|
|
- name: Codeql.SkipTaskAutoInjection
|
|
value: true
|
|
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
|
- group: DotNet-HelixApi-Access
|
|
- template: /eng/common/templates/variables/pool-providers.yml
|
|
|
|
jobs:
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Helix_quarantined_x64
|
|
jobDisplayName: 'Tests: Helix'
|
|
agentOs: Windows
|
|
installJdk: false
|
|
timeoutInMinutes: 150
|
|
steps:
|
|
# Build the shared framework
|
|
- script: ./eng/build.cmd -ci -prepareMachine -nobl -all -noBuildJava -pack -arch x64
|
|
/p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
|
displayName: Build shared fx
|
|
# -noBuildRepoTasks -noBuildNative -noBuild to avoid repeating work done in the previous step.
|
|
- script: ./eng/build.cmd -ci -prepareMachine -nobl -all -noBuildRepoTasks -noBuildNative -noBuild -noBuildJava -test
|
|
-projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:RunQuarantinedTests=true /p:IsHelixJob=true
|
|
/p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
|
displayName: Run build.cmd helix target
|
|
continueOnError: true
|
|
env:
|
|
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
|
artifacts:
|
|
- name: Helix_logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Windows_Quarantined_x64
|
|
jobDisplayName: 'Tests: Windows x64'
|
|
agentOs: Windows
|
|
installJdk: false
|
|
timeoutInMinutes: 90
|
|
isAzDOTestingJob: true
|
|
enablePublishTestResults: false
|
|
steps:
|
|
- script: ./eng/build.cmd -ci -prepareMachine -nobl -all -noBuildJava -pack
|
|
displayName: Build
|
|
- script: ./eng/build.cmd -ci -prepareMachine -nobl -all -noBuildRepoTasks -noBuildNative -NoBuild -noBuildJava -test
|
|
/p:RunQuarantinedTests=true /p:SkipHelixReadyTests=true
|
|
displayName: Run Quarantined Tests
|
|
continueOnError: true
|
|
- task: PublishTestResults@2
|
|
displayName: Publish Quarantined Test Results
|
|
inputs:
|
|
testResultsFormat: 'xUnit'
|
|
testResultsFiles: '*.xml'
|
|
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
|
testRunTitle: Quarantine-$(AgentOsName)-$(BuildConfiguration)-xunit
|
|
mergeTestResults: true
|
|
condition: always()
|
|
artifacts:
|
|
- name: Windows_Quarantined_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Quarantined_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: MacOS_Quarantined_Test
|
|
jobDisplayName: "Tests: macOS"
|
|
agentOs: macOS
|
|
timeoutInMinutes: 150
|
|
isAzDOTestingJob: true
|
|
enablePublishTestResults: false
|
|
steps:
|
|
- bash: ./eng/build.sh --ci --nobl --all --no-build-java --pack
|
|
displayName: Build
|
|
- bash: ./eng/build.sh --ci --nobl --all --no-build-repo-tasks --no-build --no-build-java --test
|
|
-p:RunQuarantinedTests=true -p:SkipHelixReadyTests=true
|
|
displayName: Run Quarantined Tests
|
|
continueOnError: true
|
|
- task: PublishTestResults@2
|
|
displayName: Publish Quarantined Test Results
|
|
inputs:
|
|
testResultsFormat: 'xUnit'
|
|
testResultsFiles: '*.xml'
|
|
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
|
testRunTitle: Quarantine-$(AgentOsName)-$(BuildConfiguration)-xunit
|
|
mergeTestResults: true
|
|
condition: always()
|
|
artifacts:
|
|
- name: MacOS_Quarantined_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: MacOS_Quarantined_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Linux_Quarantined_Test
|
|
jobDisplayName: "Tests: Ubuntu x64"
|
|
agentOs: Linux
|
|
timeoutInMinutes: 60
|
|
isAzDOTestingJob: true
|
|
enablePublishTestResults: false
|
|
useHostedUbuntu: false
|
|
steps:
|
|
- bash: ./eng/build.sh --ci --nobl --all --no-build-java --pack
|
|
displayName: Build
|
|
- bash: ./eng/build.sh --ci --nobl --all --no-build-repo-tasks --no-build --no-build-java --test
|
|
-p:RunQuarantinedTests=true -p:SkipHelixReadyTests=true
|
|
displayName: Run Quarantined Tests
|
|
continueOnError: true
|
|
- task: PublishTestResults@2
|
|
displayName: Publish Quarantined Test Results
|
|
inputs:
|
|
testResultsFormat: 'xUnit'
|
|
testResultsFiles: '*.xml'
|
|
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
|
testRunTitle: Quarantine-$(AgentOsName)-$(BuildConfiguration)-xunit
|
|
mergeTestResults: true
|
|
condition: always()
|
|
artifacts:
|
|
- name: Linux_Quarantined_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_Quarantined_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|