hrms-api-report-v1/.onedev-buildspec.yml
2026-01-13 10:42:30 +07:00

138 lines
4.7 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-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