aspnetcore/.azure/pipelines/quarantined-pr.yml

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