1# This template uses the provided list of jobs to create test one or more test jobs.
2# It can be used directly if needed, or through the matrix template.
3
4parameters:
5  # A required list of dictionaries, one per test job.
6  # Each item in the list must contain a "job" and "name" key.
7  - name: jobs
8    type: object
9
10jobs:
11  - ${{ each job in parameters.jobs }}:
12    - job: test_${{ replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_') }}
13      displayName: ${{ job.name }}
14      container: default
15      workspace:
16        clean: all
17      steps:
18        - checkout: self
19          fetchDepth: $(fetchDepth)
20          path: $(checkoutPath)
21        - bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
22          displayName: Run Tests
23        - bash: .azure-pipelines/scripts/process-results.sh
24          condition: succeededOrFailed()
25          displayName: Process Results
26        - bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
27          condition: eq(variables.haveCoverageData, 'true')
28          displayName: Aggregate Coverage Data
29        - task: PublishTestResults@2
30          condition: eq(variables.haveTestResults, 'true')
31          inputs:
32            testResultsFiles: "$(outputPath)/junit/*.xml"
33          displayName: Publish Test Results
34        - task: PublishPipelineArtifact@1
35          condition: eq(variables.haveBotResults, 'true')
36          displayName: Publish Bot Results
37          inputs:
38            targetPath: "$(outputPath)/bot/"
39            artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
40        - task: PublishPipelineArtifact@1
41          condition: eq(variables.haveCoverageData, 'true')
42          displayName: Publish Coverage Data
43          inputs:
44            targetPath: "$(Agent.TempDirectory)/coverage/"
45            artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
46