builds/checkin/dotnet.yaml (86 lines of code) (raw):
trigger: none
pr:
branches:
include:
- main
- release/*
jobs:
################################################################################
- job: check_run_pipeline
################################################################################
displayName: Check pipeline preconditions (changes ARE NOT in either edgelet, docs, or mqtt folder)
pool:
name: $(pool.linux.name)
demands:
- ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby
steps:
- bash: |
git log -m -1 --name-only --first-parent --pretty="" | egrep -i -v '^(edgelet|doc|mqtt)'
if [[ $? == 0 ]]; then
echo "Detected changes outside of edgelet, docs and mqtt folders"
echo "##vso[task.setvariable variable=RUN_PIPELINE;isOutput=true]TRUE"
fi
displayName: Check changes in sources
name: check_files
################################################################################
- job: linux_amd64
################################################################################
displayName: Linux amd64
dependsOn: check_run_pipeline
condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true')
pool:
name: $(pool.linux.name)
demands:
- ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby
steps:
- script: scripts/linux/installPrereqs.sh
displayName: Install Prerequisites
- script: |
dotnet test \
--configuration $(configuration) \
--filter 'Category=Unit' \
--logger trx \
displayName: Build and run unit tests
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testRunner: VSTest
testResultsFiles: '**/TestResults/*.trx'
condition: succeededOrFailed()
################################################################################
- job: code_coverage
################################################################################
displayName: Code coverage
dependsOn: check_run_pipeline
condition: eq(dependencies.check_run_pipeline.outputs['check_files.RUN_PIPELINE'], 'true')
variables:
coverage.goal: 58
pool:
name: $(pool.linux.name)
demands:
- ImageOverride -equals agent-aziotedge-ubuntu-22.04-msmoby
steps:
- script: scripts/linux/installPrereqs.sh
displayName: Install Prerequisites
- script: |
dotnet test \
--logger trx \
--results-directory '$(Agent.TempDirectory)' \
--filter 'Category=Unit' \
--collect 'xplat code coverage' \
--settings CodeCoverage.runsettings
displayName: Run unit tests with code coverage
- script: |
reportgenerator \
-reports:$(Agent.TempDirectory)/**/coverage.cobertura.xml \
-targetdir:$(Build.SourcesDirectory) \
-reporttypes:Cobertura
displayName: Generate coverage report
condition: succeededOrFailed()
- task: PublishCodeCoverageResults@2
displayName: Publish coverage report
inputs:
summaryFileLocation: '$(Build.SourcesDirectory)/Cobertura.xml'
condition: succeededOrFailed()
- task: BuildQualityChecks@9
displayName: 'Check build quality'
inputs:
checkCoverage: true
coverageFailOption: fixed
coverageType: lines
coverageThreshold: $(coverage.goal)
condition: succeededOrFailed()