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