Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
6f3ae5e
Rework phase 1
devpro Mar 6, 2026
d2f3924
Rename mapping profiles
devpro Mar 6, 2026
004ffde
Delete .DotSettings.user file
devpro Mar 6, 2026
505e2bd
Fix integration tests
devpro Mar 6, 2026
ec2ab62
Update README
devpro Mar 6, 2026
af792a3
Move angular-bootstrap to angular
devpro Mar 6, 2026
1097601
Validate Angular local run
devpro Mar 6, 2026
f51481a
Prepare angular mig
devpro Mar 7, 2026
2448ef9
Migration to Angular 17 (from 16)
devpro Mar 7, 2026
326b00a
Migrate to Angular 18 (from 17)
devpro Mar 7, 2026
74d6cab
Migrate to Angular 19 (from 18)
devpro Mar 7, 2026
1830794
Upgrade to Angular 20 (from 19)
devpro Mar 7, 2026
26a8a33
Rename Dal.MongoDb in Infrastructure.MongoDb
devpro Mar 7, 2026
4b90f18
Fix string null
devpro Mar 7, 2026
4b8b63b
Migrate to Angular v21
devpro Mar 7, 2026
b2708f8
Use inject instead of constructors
devpro Mar 7, 2026
924e04b
Update npm packages
devpro Mar 7, 2026
47516e6
Delete BlazorWebAssemblyApp
devpro Mar 8, 2026
b1f2cc1
Add BlazorApp with Firebase auth
devpro Mar 8, 2026
bc8c256
Add calls to api from blazor
devpro Mar 8, 2026
924f9b8
Update web design of blazor app
devpro Mar 8, 2026
57057c7
Improve movie list
devpro Mar 8, 2026
ac29000
Manage paged list and app restart for api token
devpro Mar 9, 2026
74e449a
Make a generic client
devpro Mar 9, 2026
a157e87
Create all Api clients
devpro Mar 10, 2026
2c86d04
Rename to Common.System
devpro Mar 10, 2026
2c9ae1d
Add generics for books
devpro Mar 10, 2026
be1fd6f
Small code changes
devpro Mar 10, 2026
fc8e590
Move angular folder to samples folder
devpro Mar 10, 2026
0a52ab3
Merge gitignore
devpro Mar 10, 2026
59a0c14
Move dotnet README to CONTRIBUTING
devpro Mar 10, 2026
bef0469
Move dotnet folder content to root folder
devpro Mar 10, 2026
d640989
Rename KeepTrack in Keeptrack
devpro Mar 10, 2026
125cf79
Add GitHub Actions files
devpro Mar 10, 2026
0c44d82
Add TV Shows and Video Games
devpro Mar 10, 2026
0a905dd
Improve urls
devpro Mar 10, 2026
fdd6fba
Update pipelines
devpro Mar 10, 2026
71303a3
Fix yaml errors on azure pipeline definitions
devpro Mar 10, 2026
e9cc407
Fix Dockerfile
devpro Mar 10, 2026
18c772d
Add test env
devpro Mar 10, 2026
29df4d4
Add MongoDB install script
devpro Mar 10, 2026
9ecc118
Make script executable
devpro Mar 10, 2026
b797da8
Improve pipelines
devpro Mar 11, 2026
add0004
Improve code from Sonar warnings
devpro Mar 11, 2026
f1421aa
Use a fixed version of the reusable workflow
devpro Mar 11, 2026
1b1639c
Update pipelines
devpro Mar 11, 2026
cc25695
Pass bool as bools in var ci
devpro Mar 11, 2026
13ab59f
Remove double quotes in ci additional/extra vars
devpro Mar 11, 2026
e05d6a4
Improve pipelines
devpro Mar 11, 2026
b4c22a8
Fix azure pipeline
devpro Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
549 changes: 0 additions & 549 deletions .azure/pipelines/cd.json

This file was deleted.

232 changes: 31 additions & 201 deletions .azure/pipelines/ci.yml
Original file line number Diff line number Diff line change
@@ -1,71 +1,29 @@
# Azure pipeline definition for the integration of the solution (continuous integration)

trigger:
batch: false
batch: true
branches:
include:
- main
paths:
exclude:
- README.md

pr: none
# pr:
# autoCancel: true
# branches:
# include:
# - master
# paths:
# exclude:
# - README.md
# - .azure/pipelines/nightly.yml
# - .azure/pipelines/pkg.yml
# - .azure/pipelines/cd.json

schedules:
- cron: "0 0 * * *"
displayName: "Daily midnight build"
branches:
include:
- main
always: true
pr: none

variables:
# library variable groups
- group: "build-tools"
- group: "devproapp-testing"
# common task variables
- name: "dotnet.sdk.version"
value: "9.0.x"
value: "10.0.x"
- name: "dotnet.cache.disable"
value: "false"
- name: "BuildConfiguration"
value: "Debug"
- name: "SolutionFile"
value: "KeepTrack.sln"
value: "Keeptrack.slnx"
- name: "TestProjects"
value: "test/*Tests/*.csproj"
- name: "UnitTestProjects"
value: "test/*UnitTests/*.csproj"
- name: "IntegrationTestProjects"
value: "test/*IntegrationTests/*.csproj"
# tool variables (Sonar)
- name: "sonar.project.name"
value: "KeepTrack"
- name: "sonar.project.key"
value: "devpro.keep-track"
# specific variables
- name: "angular.cli.version"
value: "16.2.6"
- name: "angular.path"
value: "angular-bootstrap"
- name: "blazorwasm.path"
value: "dotnet/src/BlazorWebAssemblyApp"
- name: "dotnet.path"
value: "dotnet"
- name: "nodejs.version.spec"
value: "22.x"

stages:
# Unit testing
- stage: "unit_testing"
displayName: "Unit testing"
jobs:
Expand All @@ -74,85 +32,38 @@ stages:
pool:
vmImage: "ubuntu-latest"
steps:
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSpec: $(nodejs.version.spec)
- task: Npm@1
displayName: "Install Angular CLI"
inputs:
command: "custom"
customCommand: "install -g @angular/cli@$(angular.cli.version)"
- task: UseDotNet@2
displayName: "Use .NET Core SDK"
inputs:
packageType: "sdk"
version: $(dotnet.sdk.version)
- task: Npm@1
displayName: "Install NPM packages for Blazor WASM"
inputs:
command: "install"
workingDir: $(blazorwasm.path)
- task: Bash@3
displayName: "Write Blazor WASM configuration files"
inputs:
targetType: "inline"
script: |
bash ./scripts/write_blazorconfig.sh $(blazorwasm.path)/wwwroot $(firebase.apikey) $(firebase.projectid) $(firebase.messagingsenderid) $(firebase.appid) $(firebase.measurementid) https://localhost:5011
- task: Npm@1
displayName: "Run WebPack"
inputs:
command: "custom"
customCommand: "run webpack:dev"
workingDir: $(blazorwasm.path)
- task: DotNetCoreCLI@2
displayName: "Build .NET solution"
inputs:
command: "build"
projects: "$(dotnet.path)/$(SolutionFile)"
projects: "$(SolutionFile)"
arguments: "-c $(BuildConfiguration)"
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
COREHOST_TRACE: 0
DOTNET_NOLOGO: 1
- task: DotNetCoreCLI@2
displayName: "Run .NET unit tests"
inputs:
command: "test"
projects: "$(dotnet.path)/$(UnitTestProjects)"
projects: "$(UnitTestProjects)"
arguments: "--configuration $(BuildConfiguration)"
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
COREHOST_TRACE: 0
- task: Npm@1
displayName: "Install NPM packages at $(angular.path)"
inputs:
command: "install"
workingDir: $(angular.path)
- task: Bash@3
displayName: "Write environment.dev.ts file"
inputs:
targetType: "inline"
script: |
bash ./scripts/write_angularconfig.sh $(angular.path)/src/environments/environment.dev.ts $(firebase.apikey) $(firebase.projectid) $(firebase.messagingsenderid) $(firebase.appid) $(firebase.measurementid) https://localhost:5011
- task: Npm@1
displayName: "Run Angular unit tests"
inputs:
command: "custom"
customCommand: "run test:ci"
workingDir: $(angular.path)
DOTNET_NOLOGO: 1

# Integration testing
- stage: "integration_testing"
displayName: "Integration testing"
dependsOn: [] # no dependencies: run at the same time as the unit testing stage
dependsOn: []
condition: eq(variables['RunIntegrationTestingStage'], true)
jobs:
- job: "windows_integrationtests"
displayName: "Windows CI"
pool:
# code coverage generation only works on Windows for the moment
vmImage: "windows-latest"
steps:
- task: UseDotNet@2
Expand All @@ -169,128 +80,47 @@ stages:
md log
md data
Start-Process -FilePath "mongod" -ArgumentList "--logpath log/mongod.log", "--dbpath data", "--port 27017" -WindowStyle Hidden
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSpec: $(nodejs.version.spec)
- task: Npm@1
displayName: "Install Angular CLI"
inputs:
command: "custom"
customCommand: "install -g @angular/cli@$(angular.cli.version)"
- task: Npm@1
displayName: "Install NPM packages at $(blazorwasm.path)"
inputs:
command: "install"
workingDir: $(blazorwasm.path)
- task: Bash@3
displayName: "Write firebase.configfile"
inputs:
targetType: "inline"
script: |
chmod +x ./scripts/*.sh
bash ./scripts/write_blazorconfig.sh $(blazorwasm.path)/wwwroot $(firebase.apikey) $(firebase.projectid) $(firebase.messagingsenderid) $(firebase.appid) $(firebase.measurementid) https://localhost:5011
- task: Npm@1
displayName: "Run WebPack at $(blazorwasm.path)"
inputs:
command: "custom"
customCommand: "run webpack:dev"
workingDir: $(blazorwasm.path)
- task: DotNetCoreCLI@2
displayName: "Restore .NET packages"
inputs:
command: "restore"
projects: "$(dotnet.path)/$(SolutionFile)"
projects: "$(SolutionFile)"
feedsToUse: "select"
noCache: $(dotnet.cache.disable)
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
COREHOST_TRACE: 0
- task: SonarCloudPrepare@1
displayName: "Prepare code analysis"
inputs:
SonarCloud: "$(sonar.instance)"
organization: "$(sonar.organization)"
scannerMode: "MSBuild"
projectKey: "$(sonar.project.key)"
projectName: "$(sonar.project.name)"
extraProperties: |
sonar.cpd.exclusions=**/*.Domain/*Model.cs,**/*.Dto/*Dto.cs
sonar.exclusions=**/node_modules/**,**/*.spec.ts,**/e2e/**,**/coverage/**
sonar.typescript.tsconfigPath=$(angular.path)/tslint.json
sonar.typescript.lcov.reportPaths=$(angular.path)/coverage/lcov.info
DOTNET_NOLOGO: 1
- task: DotNetCoreCLI@2
displayName: "Build .NET solution"
inputs:
command: "build"
projects: "$(dotnet.path)/$(SolutionFile)"
projects: "$(SolutionFile)"
arguments: "-c $(BuildConfiguration)"
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
COREHOST_TRACE: 0
DOTNET_NOLOGO: 1
- task: DotNetCoreCLI@2
displayName: "Run .NET test projects"
inputs:
command: "test"
projects: "$(dotnet.path)/$(TestProjects)"
arguments: '--configuration $(BuildConfiguration) --filter "Environment=Localhost|Category=UnitTests" --collect "Code coverage"'
projects: "$(TestProjects)"
arguments: '--configuration $(BuildConfiguration) --report-xunit-trx --coverage --coverage-output-format cobertura -- --filter-query "/[(Category=UnitTests)|(Mode=Readonly)]"'
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
COREHOST_TRACE: 0
AllowedOrigins__0: http://localhost:4200
Infrastructure__MongoDB__ConnectionString: mongodb://localhost:27017
Infrastructure__MongoDB__DatabaseName: keeptrack_integrationtests
Authentication__JtBearer__TokenValidation__Issuer: $(keeptrack.jwtbearer.tokenvalidation.issuer)
Authentication__JwtBearer__Authority: $(keeptrack.jwtbearer.authority)
Authentication__JwtBearer__TokenValidation__Audience: $(keeptrack.jwtbearer.tokenvalidation.audience)
Firebase__Application__Key: $(firebase.apikey)
Firebase__Username: $(firebase.testing.user0.username)
Firebase__Password: $(firebase.testing.user0.password)
- task: Npm@1
displayName: "Install NPM packages at $(angular.path)"
inputs:
command: "install"
workingDir: $(angular.path)
- task: Npm@1
displayName: "Run Angular lint"
inputs:
command: "custom"
customCommand: "run lint"
workingDir: $(angular.path)
- task: Bash@3
displayName: "Write Angular environment file"
inputs:
targetType: "inline"
script: |
bash ./scripts/write_angularconfig.sh $(angular.path)/src/environments/environment.dev.ts $(firebase.apikey) $(firebase.projectid) $(firebase.messagingsenderid) $(firebase.appid) $(firebase.measurementid) https://localhost:5011
- task: Npm@1
displayName: "Run Angular unit tests"
inputs:
command: "custom"
customCommand: "run test:ci"
workingDir: $(angular.path)
- task: PublishTestResults@2
displayName: "Publish Angular test results"
inputs:
testResultsFormat: "JUnit"
testResultsFiles: "**/TESTS-*.xml"
searchFolder: "$(angular.path)"
- task: SonarCloudAnalyze@1
displayName: "Analyze the code with Sonar"
- task: SonarCloudPublish@1
displayName: "Publish the code analysis results"
inputs:
pollingTimeoutSec: "300"
- task: CopyFiles@2
displayName: "Copy screenshots"
condition: failed()
inputs:
Contents: "**/screenshot*.png"
TargetFolder: "$(Build.ArtifactStagingDirectory)"
flattenFolders: true
DOTNET_NOLOGO: 1
# - task: CmdLine@2
# displayName: "Run .NET test projects"
# inputs:
# script: >
# dotnet test
# --configuration $(BuildConfiguration)
# --report-xunit-trx
# --coverage
# --coverage-output-format cobertura
# -- --filter-query "/[(Category=UnitTests)|(Mode=Readonly)]"
# env:
# DOTNET_CLI_TELEMETRY_OPTOUT: 1
# DOTNET_NOLOGO: 1
- task: PublishBuildArtifacts@1
displayName: "Publish artifacts"
condition: failed()
Expand Down
Loading
Loading