Backend/e-suite.MessageProcessor/azure-pipelines.yml
2026-01-20 21:50:10 +00:00

106 lines
3.2 KiB
YAML

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)$(postfix)$(branchName) # NOTE: rev resets when the default retention period expires
trigger:
branches:
include:
- '*'
pool:
vmImage: ubuntu-latest # ubuntu-latest - set to windows-latest or another Windows vmImage for Windows builds
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
containerRegistry: esuite.azurecr.io
DOCKER_BUILDKIT: 1
imageName: 'e-suite.MessageProcessor'
publishPath: $(Build.Repository.LocalPath)/build/e-suite.MessageProcessor
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
branchName: ''
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/heads/') }}:
branchName: $[ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), '/', '-' ) ]
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/pull/') }}:
branchName: $[ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), '/', '-' ) ]
${{ if eq(variables['branchName'], '') }}:
postfix: ''
${{ else }}:
postfix: '-'
steps:
- task: UseDotNet@2
displayName: 'Set .net core version'
inputs:
version: '9.0.x'
- task: DotNetCoreCLI@2
displayName: 'Nuget Restore'
inputs:
command: 'restore'
feedsToUse: config
projects: '**/*.csproj'
nugetConfigPath: nuget.config
- task: DotNetCoreCLI@2
inputs:
command: 'build'
arguments: '--configuration $(buildConfiguration)'
displayName: 'dotnet build $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'Run Tests'
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage" --settings .runsettings'
- task: DotNetCoreCLI@2
displayName: 'Publish e-suite.MessageProcessor'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
command: publish
projects: 'e-suite.MessageProcessor/e-suite.MessageProcessor.csproj'
publishWebProjects: false
arguments: -c $(BuildConfiguration) -o build
zipAfterPublish: false
- powershell: |
Write-Host "Show all folder content"
Get-ChildItem -Path $(publishPath)\*.* -Recurse -Force | % { $_.FullName }
errorActionPreference: continue
displayName: 'PowerShell Script List folder structure'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
continueOnError: true
- task: Docker@2
displayName: Build e-suite.MessageProcessor Image
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
command: build
repository: $(imageName)
buildContext: $(publishPath)
Dockerfile: $(publishPath)/Dockerfile.Azure
containerRegistry: |
$(containerRegistry)
tags: |
$(Build.BuildNumber)
- task: Docker@2
displayName: Push e-suite.MessageProcessor
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
command: push
repository: $(imageName)
containerRegistry: |
$(containerRegistry)
tags: |
$(Build.BuildNumber)