138 lines
4 KiB
YAML
138 lines
4 KiB
YAML
version: 38
|
|
jobs:
|
|
- name: CI for UAT
|
|
steps:
|
|
- !CheckoutStep
|
|
name: checkout code
|
|
cloneCredential: !DefaultCredential {}
|
|
withLfs: false
|
|
withSubmodules: false
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !GenerateChecksumStep
|
|
name: generate project checksum
|
|
files: '**/*.csproj'
|
|
targetFile: checksum
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !SetupCacheStep
|
|
name: set up nuget cache
|
|
key: nuget_packages_@file:checksum@
|
|
loadKeys:
|
|
- nuget_packages
|
|
paths:
|
|
- /root/.nuget/packages
|
|
uploadStrategy: UPLOAD_IF_NOT_HIT
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !CommandStep
|
|
name: test and analyze
|
|
runInContainer: true
|
|
image: mcr.microsoft.com/dotnet/sdk
|
|
interpreter: !DefaultInterpreter
|
|
commands: |
|
|
set -e
|
|
dotnet tool install -g roslynator.dotnet.cli
|
|
dotnet test -l trx --collect:"XPlat Code Coverage"
|
|
#/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml
|
|
useTTY: true
|
|
condition: NEVER
|
|
- !PublishTRXReportStep
|
|
name: publish unit test report
|
|
reportName: Unit Test
|
|
filePatterns: '**/*.trx'
|
|
condition: NEVER
|
|
- !PublishCoberturaReportStep
|
|
name: publish code coverage report
|
|
reportName: Code Coverage
|
|
filePatterns: '**/coverage.cobertura.xml'
|
|
condition: NEVER
|
|
- !PublishRoslynatorReportStep
|
|
name: publish code problem report
|
|
reportName: Code Problems
|
|
filePatterns: roslynator-analysis.xml
|
|
failThreshold: HIGH
|
|
condition: NEVER
|
|
- !SetBuildVersionStep
|
|
name: set build version
|
|
buildVersion: '@tag@'
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !BuildImageStep
|
|
name: build docker image
|
|
dockerfile: ./Dockerfile
|
|
output: !RegistryOutput
|
|
tags: '@server@/bma-hrms/hrms-api-recruit:@build_version@ @server@/bma-hrms/hrms-api-recruit:latest'
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
triggers:
|
|
- !TagCreateTrigger
|
|
tags: uat-*
|
|
branches: main
|
|
retryCondition: never
|
|
maxRetries: 3
|
|
retryDelay: 30
|
|
timeout: 14400
|
|
- name: CI for PROD
|
|
steps:
|
|
- !CheckoutStep
|
|
name: checkout code
|
|
cloneCredential: !DefaultCredential {}
|
|
withLfs: false
|
|
withSubmodules: false
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !GenerateChecksumStep
|
|
name: generate project checksum
|
|
files: '**/*.csproj'
|
|
targetFile: checksum
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !SetupCacheStep
|
|
name: set up nuget cache
|
|
key: nuget_packages_@file:checksum@
|
|
loadKeys:
|
|
- nuget_packages
|
|
paths:
|
|
- /root/.nuget/packages
|
|
uploadStrategy: UPLOAD_IF_NOT_HIT
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !CommandStep
|
|
name: test and analyze
|
|
runInContainer: true
|
|
image: mcr.microsoft.com/dotnet/sdk
|
|
interpreter: !DefaultInterpreter
|
|
commands: |
|
|
set -e
|
|
dotnet tool install -g roslynator.dotnet.cli
|
|
dotnet test -l trx --collect:"XPlat Code Coverage"
|
|
#/root/.dotnet/tools/roslynator analyze -o roslynator-analysis.xml
|
|
useTTY: true
|
|
condition: NEVER
|
|
- !PublishTRXReportStep
|
|
name: publish unit test report
|
|
reportName: Unit Test
|
|
filePatterns: '**/*.trx'
|
|
condition: NEVER
|
|
- !PublishCoberturaReportStep
|
|
name: publish code coverage report
|
|
reportName: Code Coverage
|
|
filePatterns: '**/coverage.cobertura.xml'
|
|
condition: NEVER
|
|
- !PublishRoslynatorReportStep
|
|
name: publish code problem report
|
|
reportName: Code Problems
|
|
filePatterns: roslynator-analysis.xml
|
|
failThreshold: HIGH
|
|
condition: NEVER
|
|
- !SetBuildVersionStep
|
|
name: set build version
|
|
buildVersion: '@tag@'
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
- !BuildImageStep
|
|
name: build docker image
|
|
dockerfile: ./Dockerfile
|
|
output: !RegistryOutput
|
|
tags: '@server@/bma-hrms/hrms-api-recruit:@build_version@ @server@/bma-hrms/hrms-api-recruit:latest'
|
|
condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL
|
|
triggers:
|
|
- !TagCreateTrigger
|
|
tags: prod-*
|
|
branches: main
|
|
retryCondition: never
|
|
maxRetries: 3
|
|
retryDelay: 30
|
|
timeout: 14400
|