Skip to content

Commit

Permalink
Adding test pipeline for common-tests (#24402)
Browse files Browse the repository at this point in the history
Co-authored-by: Sima Zhu <[email protected]>
  • Loading branch information
azure-sdk and sima-zhu authored Jan 9, 2023
1 parent e9e2ce5 commit a79fcaa
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
43 changes: 43 additions & 0 deletions eng/common/pipelines/templates/stages/archetype-sdk-tool-pwsh.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
parameters:
- name: TargetDirectory
type: string
- name: CustomTestSteps
type: object
default: []
- name: EnvVars
type: object
default: {}
- name: TargetTags
type: string
default: ''

variables:
- template: /eng/pipelines/templates/variables/globals.yml

stages:
- stage: 'eng_script_tests'
jobs:
- job: 'Test'
strategy:
matrix:
Windows:
Pool: 'azsdk-pool-mms-win-2022-general'
Image: 'MMS2022'
Linux:
Pool: azsdk-pool-mms-ubuntu-2204-general
Image: MMSUbuntu22.04
Mac:
Pool: 'Azure Pipelines'
Image: 'macos-11'

pool:
name: $(Pool)
vmImage: $(Image)

steps:
- template: /eng/common/pipelines/templates/steps/run-pester-tests.yml
parameters:
TargetDirectory: ${{ parameters.TargetDirectory }}
CustomTestSteps: ${{ parameters.CustomTestSteps }}
EnvVars: ${{ parameters.EnvVars }}
TargetTags: ${{ parameters.TargetTags }}
55 changes: 55 additions & 0 deletions eng/common/pipelines/templates/steps/run-pester-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
parameters:
- name: TargetDirectory
type: string
- name: CustomTestSteps
type: object
default: []
- name: EnvVars
type: object
default: {}
- name: TargetTags
type: string
default: ''

steps:
- pwsh: |
Install-Module -Name Pester -Force
displayName: Install Pester
# default test steps
- ${{ if eq(length(parameters.CustomTestSteps), 0) }}:
- pwsh: |
$tags = "${{ parameters.TargetTags }}" -Split "," | ForEach-Object { return $_.Trim() }
$config = New-PesterConfiguration
$config.CodeCoverage.Enabled = $true
$config.TestResult.Enabled = $true
$config.Run.PassThru = $true
if ($tags) {
$config.Filter.Tag = $tags
}
Invoke-Pester -Configuration $config
displayName: Run Tests
env: ${{ parameters.EnvVars }}
workingDirectory: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}
- ${{ if not(eq(length(parameters.CustomTestSteps), 0)) }}:
- ${{ parameters.CustomTestSteps }}

- task: PublishTestResults@2
displayName: 'Publish Test Results'
condition: succeededOrFailed()
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/testResults.xml
testRunTitle: '$(System.StageName)_$(Agent.JobName)_Tests'

- task: PublishCodeCoverageResults@1
displayName: 'Publish Code Coverage to Azure DevOps'
condition: succeededOrFailed()
inputs:
codeCoverageTool: 'JaCoCo'
summaryFileLocation: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/coverage.xml'
pathToSources: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}'

0 comments on commit a79fcaa

Please sign in to comment.