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-reportv1:@build_version@ @server@/bma-hrms/hrms-api-reportv1: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-reportv1:@build_version@ @server@/bma-hrms/hrms-api-reportv1:latest" condition: ALL_PREVIOUS_STEPS_WERE_SUCCESSFUL triggers: - !TagCreateTrigger tags: prod-* branches: main retryCondition: never maxRetries: 3 retryDelay: 30 timeout: 14400