Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
8dcf9a7
sonarcloud configuration ci
kolosovpetro Apr 20, 2026
7891fb6
update triggers for pr
kolosovpetro Apr 20, 2026
0a7c113
enable auto cancel
kolosovpetro Apr 20, 2026
0f4e347
encoding
kolosovpetro Apr 20, 2026
5a7d126
add docker ignore
kolosovpetro Apr 20, 2026
d5773b3
optimize docker file
kolosovpetro Apr 20, 2026
0e1527a
fix docker file
kolosovpetro Apr 20, 2026
4470513
add conditions
kolosovpetro Apr 20, 2026
11928e8
roll back docker file
kolosovpetro Apr 20, 2026
4bad000
remove no cache argument
kolosovpetro Apr 20, 2026
eef7c4e
dockerfiles and script
kolosovpetro Apr 20, 2026
1073263
optimize frontend build
kolosovpetro Apr 20, 2026
0ce1c08
disable push to dockerhub
kolosovpetro Apr 20, 2026
aba5016
split build anddocker jobs
kolosovpetro Apr 20, 2026
b63bd74
pr validation pipelines
kolosovpetro Apr 20, 2026
b26711b
comment unused parameters
kolosovpetro Apr 20, 2026
34ea13f
pr validation: remove commented code
kolosovpetro Apr 20, 2026
48bd1cf
build pipelines
kolosovpetro Apr 20, 2026
4abea83
remove commented code
kolosovpetro Apr 20, 2026
61cebe4
changelog
kolosovpetro Apr 20, 2026
a9d07fd
remove docker build app base url
kolosovpetro Apr 20, 2026
dacc95c
try config fix
kolosovpetro Apr 20, 2026
b73d45e
docker build kit | push to dockerhub
kolosovpetro Apr 21, 2026
33e549a
use docker buildx
kolosovpetro Apr 21, 2026
8869fea
use docker cache
kolosovpetro Apr 21, 2026
862ba25
use docker cache
kolosovpetro Apr 21, 2026
6fa42a9
docker build script
kolosovpetro Apr 21, 2026
1dd3355
docker build script
kolosovpetro Apr 21, 2026
e4226dd
try optimize build
kolosovpetro Apr 21, 2026
6dac02e
remove version argument docker
kolosovpetro Apr 21, 2026
b343c7f
fix build script
kolosovpetro Apr 21, 2026
9267e16
update changelog
kolosovpetro Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ runs:
- name: Determine Version
uses: gittools/actions/gitversion/execute@v4.5.0

- name: Setup .NET 8.x SDK
- name: Setup .NET 10.x SDK
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.x
dotnet-version: 10.x

- name: NuGet Cache
uses: actions/cache@v5
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ and this project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec
- Add dotnet install step to CI/CD
- Upgrade .NET version to 10
- Organize ports for apps, containers, services
- Run sonar scan only on auth service CI, skip other services
- Ignore docker compose file for azure devops CI
- Skip CI if updates was only in MD files (trigger update)
- DockerFiles optimization for faster builds
- Split CI by separate Jobs to speed up builds
- Use Docker cache in CI
- Transform Frontend URL by using volume mount and configmaps

## [1.0.0] - 18-Apr-2026

Expand Down
31 changes: 20 additions & 11 deletions azure-pipelines/build/build-auth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,41 @@ pr: none

variables:
- name: appName
value: 'AuthorizationAPI'
value: 'Auth'
- name: System.Debug
value: 'false'

pool:
vmImage: 'ubuntu-latest'

stages:
- stage: 'Build_${{ variables.appName }}'
displayName: 'Build_${{ variables.appName }}'
- stage: 'Docker_Push_${{ variables.appName }}'
displayName: 'Docker_Push_${{ variables.appName }}'
jobs:
- template: ../templates/docker-build-push-jobs.yml
parameters:
JobName: 'Build_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.Presentation'
shouldRunUnitTests: false
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.IntegrationTests/EventTriangleAPI.Authorization.IntegrationTests.csproj'
JobName: 'Docker_Push_${{ variables.appName }}'
dockerRegistryUrl: 'docker.io/kaminome'
dockerBuildParameterUrl: 'https://auth-eventtriangle.razumovsky.me/'
imageRepository: 'auth-service'
dockerfilePath: '$(System.DefaultWorkingDirectory)/src/authorization/Dockerfile'
dockerServiceConnection: 'Docker_Hub_Connection'
shouldPushToAcr: true
shouldPushToDockerHub: true
acrRegistryUrl: 'acrsharedd01.azurecr.io'
acrServiceConnection: 'Azure_ACR_Connection'
workingDirectoryForDocker: '$(System.DefaultWorkingDirectory)/src'

- stage: 'Build_Test_Scan_${{ variables.appName }}'
displayName: 'Build_Test_Scan_${{ variables.appName }}'
jobs:
- template: ../templates/build-test-scan-jobs.yml
parameters:
JobName: 'Build_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.Presentation'
shouldRunUnitTests: false
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.IntegrationTests/EventTriangleAPI.Authorization.IntegrationTests.csproj'
sonarCloudEnabled: true
sonarCloudServiceConnection: 'SonarCloud_Service_Connection'
31 changes: 20 additions & 11 deletions azure-pipelines/build/build-consumer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,41 @@ pr: none

variables:
- name: appName
value: 'ConsumerAPI'
value: 'Consumer'
- name: System.Debug
value: 'false'

pool:
vmImage: 'ubuntu-latest'

stages:
- stage: 'Build_${{ variables.appName }}'
displayName: 'Build_${{ variables.appName }}'
- stage: 'Docker_Push_${{ variables.appName }}'
displayName: 'Docker_Push_${{ variables.appName }}'
jobs:
- template: ../templates/docker-build-push-jobs.yml
parameters:
JobName: 'Build_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.Presentation'
unitTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.UnitTests/EventTriangleAPI.Consumer.UnitTests.csproj'
shouldRunUnitTests: true
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.IntegrationTests/EventTriangleAPI.Consumer.IntegrationTests.csproj'
JobName: 'Docker_Push_${{ variables.appName }}'
dockerRegistryUrl: 'docker.io/kaminome'
imageRepository: 'consumer-service'
dockerfilePath: '$(System.DefaultWorkingDirectory)/src/consumer/Dockerfile'
dockerServiceConnection: 'Docker_Hub_Connection'
shouldPushToDockerHub: true
shouldPushToAcr: true
acrRegistryUrl: 'acrsharedd01.azurecr.io'
acrServiceConnection: 'Azure_ACR_Connection'
workingDirectoryForDocker: '$(System.DefaultWorkingDirectory)/src'

- stage: 'Build_Test_Scan_${{ variables.appName }}'
displayName: 'Build_Test_Scan_${{ variables.appName }}'
jobs:
- template: ../templates/build-test-scan-jobs.yml
parameters:
JobName: 'Build_Test_Scan_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.Presentation'
unitTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.UnitTests/EventTriangleAPI.Consumer.UnitTests.csproj'
shouldRunUnitTests: true
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.IntegrationTests/EventTriangleAPI.Consumer.IntegrationTests.csproj'
sonarCloudEnabled: false
31 changes: 20 additions & 11 deletions azure-pipelines/build/build-sender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,41 @@ pr: none

variables:
- name: appName
value: 'SenderAPI'
value: 'Sender'
- name: System.Debug
value: 'false'

pool:
vmImage: 'ubuntu-latest'

stages:
- stage: 'Build_${{ variables.appName }}'
displayName: 'Build_${{ variables.appName }}'
- stage: 'Docker_Push_${{ variables.appName }}'
displayName: 'Docker_Push_${{ variables.appName }}'
jobs:
- template: ../templates/docker-build-push-jobs.yml
parameters:
JobName: 'Build_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.Presentation'
unitTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.UnitTests/EventTriangleAPI.Sender.UnitTests.csproj'
shouldRunIntegrationTests: true
shouldRunUnitTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.IntegrationTests/EventTriangleAPI.Sender.IntegrationTests.csproj'
JobName: 'Docker_Push_${{ variables.appName }}'
dockerRegistryUrl: 'docker.io/kaminome'
imageRepository: 'sender-service'
dockerfilePath: '$(System.DefaultWorkingDirectory)/src/sender/Dockerfile'
dockerServiceConnection: 'Docker_Hub_Connection'
shouldPushToDockerHub: true
shouldPushToAcr: true
acrRegistryUrl: 'acrsharedd01.azurecr.io'
acrServiceConnection: 'Azure_ACR_Connection'
workingDirectoryForDocker: '$(System.DefaultWorkingDirectory)/src'

- stage: 'Build_Test_Scan_${{ variables.appName }}'
displayName: 'Build_Test_Scan_${{ variables.appName }}'
jobs:
- template: ../templates/build-test-scan-jobs.yml
parameters:
JobName: 'Build_Test_Scan_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.Presentation'
unitTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.UnitTests/EventTriangleAPI.Sender.UnitTests.csproj'
shouldRunIntegrationTests: true
shouldRunUnitTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/sender/EventTriangleAPI.Sender.IntegrationTests/EventTriangleAPI.Sender.IntegrationTests.csproj'
sonarCloudEnabled: false
55 changes: 38 additions & 17 deletions azure-pipelines/pr-validation/pr-validation-auth.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,51 @@
trigger: none

pr:
autoCancel: true
branches:
include:
- develop
- main

paths:
include:
- azure-pipelines
- platform
- helm
- cloudflare
- src/authorization/EventTriangleAPI.Authorization.BusinessLogic
- src/authorization/EventTriangleAPI.Authorization.Presentation
- src/shared/EventTriangleAPI.Shared.Application
- src/shared/EventTriangleAPI.Shared.DTO
# Auth service (ALL layers)
- src/authorization/**

# Shared code used by auth
- src/shared/**

# Pipeline itself (so changes validate)
- azure-pipelines/**
- azure-pipelines/templates/**

exclude:
# Docs
- '**/*.md'

# Docker compose (global/dev only)
- '**/docker-compose*.yml'
- '**/docker-compose*.yaml'

# Ignore other services explicitly
- src/consumer/**
- src/sender/**

# Helm & infra (unless auth-specific)
- helm/**
- platform/**
- cloudflare/**
- docs/**
- kubernetes/**
- img/**
- terraform/**
- terraform-azdo-libraries/**
- .github/**
- LICENSE

variables:
- name: appName
value: 'AuthorizationAPI'
value: 'Auth'
- name: System.Debug
value: 'false'

Expand All @@ -31,18 +58,12 @@ stages:
jobs:
- template: ../templates/docker-build-push-jobs.yml
parameters:
JobName: 'PR_Validation_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.Presentation'
shouldRunUnitTests: false
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/authorization/EventTriangleAPI.Authorization.IntegrationTests/EventTriangleAPI.Authorization.IntegrationTests.csproj'
JobName: 'Docker_Push_${{ variables.appName }}'
dockerRegistryUrl: 'docker.io/kaminome'
dockerBuildParameterUrl: 'https://auth-eventtriangle.razumovsky.me/'
imageRepository: 'auth-service'
dockerfilePath: '$(System.DefaultWorkingDirectory)/src/authorization/Dockerfile'
dockerServiceConnection: 'Docker_Hub_Connection'
shouldPushToDockerHub: true
shouldPushToAcr: true
acrRegistryUrl: 'acrsharedd01.azurecr.io'
acrServiceConnection: 'Azure_ACR_Connection'
Expand Down
59 changes: 38 additions & 21 deletions azure-pipelines/pr-validation/pr-validation-consumer.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,51 @@
trigger: none

pr:
autoCancel: true
branches:
include:
- develop
- main

paths:
include:
- azure-pipelines
- platform
- helm
- cloudflare
- src/consumer/EventTriangleAPI.Consumer.Application
- src/consumer/EventTriangleAPI.Consumer.BusinessLogic
- src/consumer/EventTriangleAPI.Consumer.Domain
- src/consumer/EventTriangleAPI.Consumer.Presentation
- src/consumer/EventTriangleAPI.Consumer.IntegrationTests
- src/consumer/EventTriangleAPI.Consumer.UnitTests
- src/shared/EventTriangleAPI.Shared.Application
- src/shared/EventTriangleAPI.Shared.DTO
# Consumer service (ALL layers)
- src/consumer/**

# Shared code used by auth
- src/shared/**

# Pipeline itself (so changes validate)
- azure-pipelines/**
- azure-pipelines/templates/**

exclude:
# Docs
- '**/*.md'

# Docker compose (global/dev only)
- '**/docker-compose*.yml'
- '**/docker-compose*.yaml'

# Ignore other services explicitly
- src/authorization/**
- src/sender/**

# Helm & infra (unless auth-specific)
- helm/**
- platform/**
- cloudflare/**
- docs/**
- kubernetes/**
- img/**
- terraform/**
- terraform-azdo-libraries/**
- .github/**
- LICENSE

variables:
- name: appName
value: 'ConsumerAPI'
value: 'Consumer'
- name: System.Debug
value: 'false'

Expand All @@ -35,18 +58,12 @@ stages:
jobs:
- template: ../templates/docker-build-push-jobs.yml
parameters:
JobName: 'PR_Validation_${{ variables.appName }}'
solution: '$(System.DefaultWorkingDirectory)/EventTriangleAPI.sln'
buildConfiguration: 'Release'
backendProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.Presentation'
unitTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.UnitTests/EventTriangleAPI.Consumer.UnitTests.csproj'
shouldRunUnitTests: true
shouldRunIntegrationTests: true
integrationTestsProjectPath: '$(System.DefaultWorkingDirectory)/src/consumer/EventTriangleAPI.Consumer.IntegrationTests/EventTriangleAPI.Consumer.IntegrationTests.csproj'
JobName: 'Docker_Push_${{ variables.appName }}'
dockerRegistryUrl: 'docker.io/kaminome'
imageRepository: 'consumer-service'
dockerfilePath: '$(System.DefaultWorkingDirectory)/src/consumer/Dockerfile'
dockerServiceConnection: 'Docker_Hub_Connection'
shouldPushToDockerHub: true
shouldPushToAcr: true
acrRegistryUrl: 'acrsharedd01.azurecr.io'
acrServiceConnection: 'Azure_ACR_Connection'
Expand Down
Loading
Loading