46 lines
1.9 KiB
YAML
46 lines
1.9 KiB
YAML
|
# This template uses the provided list of jobs to create test one or more test jobs.
|
||
|
# It can be used directly if needed, or through the matrix template.
|
||
|
|
||
|
parameters:
|
||
|
# A required list of dictionaries, one per test job.
|
||
|
# Each item in the list must contain a "job" and "name" key.
|
||
|
- name: jobs
|
||
|
type: object
|
||
|
|
||
|
jobs:
|
||
|
- ${{ each job in parameters.jobs }}:
|
||
|
- job: test_${{ replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_') }}
|
||
|
displayName: ${{ job.name }}
|
||
|
container: default
|
||
|
workspace:
|
||
|
clean: all
|
||
|
steps:
|
||
|
- checkout: self
|
||
|
fetchDepth: $(fetchDepth)
|
||
|
path: $(checkoutPath)
|
||
|
- bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
|
||
|
displayName: Run Tests
|
||
|
- bash: .azure-pipelines/scripts/process-results.sh
|
||
|
condition: succeededOrFailed()
|
||
|
displayName: Process Results
|
||
|
- bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
|
||
|
condition: eq(variables.haveCoverageData, 'true')
|
||
|
displayName: Aggregate Coverage Data
|
||
|
- task: PublishTestResults@2
|
||
|
condition: eq(variables.haveTestResults, 'true')
|
||
|
inputs:
|
||
|
testResultsFiles: "$(outputPath)/junit/*.xml"
|
||
|
displayName: Publish Test Results
|
||
|
- task: PublishPipelineArtifact@1
|
||
|
condition: eq(variables.haveBotResults, 'true')
|
||
|
displayName: Publish Bot Results
|
||
|
inputs:
|
||
|
targetPath: "$(outputPath)/bot/"
|
||
|
artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||
|
- task: PublishPipelineArtifact@1
|
||
|
condition: eq(variables.haveCoverageData, 'true')
|
||
|
displayName: Publish Coverage Data
|
||
|
inputs:
|
||
|
targetPath: "$(Agent.TempDirectory)/coverage/"
|
||
|
artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|