From 432fdeac892e21ecd0f133a06a31a6bc4e38b97b Mon Sep 17 00:00:00 2001 From: Nano Taboada <87288+nanotaboada@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:17:27 -0300 Subject: [PATCH 1/2] docs: refine architecture diagram layout and dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Change diagram orientation from left-right (LR) to top-bottom (TB) - Add Models → Mappings dependency connection Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 68a5779..fba09c6 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Dependencies flow from data layer through repositories and services to controlle "clusterBorder": "#ddd" } }}%% -graph LR +graph TB %% Layer 1: Data Data[Data] @@ -152,6 +152,7 @@ graph LR Controllers --> Program %% Layer connections + Models --> Mappings Validators --> Controllers Mappings --> Services @@ -351,4 +352,4 @@ Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for de ## Legal -This is a proof-of-concept project intended for educational and demonstration purposes. All trademarks, registered trademarks, service marks, product names, company names, or logos mentioned are the property of their respective owners and are used for identification purposes only. +This project is provided for educational and demonstration purposes and may be used in production environments at your discretion. All referenced trademarks, service marks, product names, company names, and logos are the property of their respective owners and are used solely for identification or illustrative purposes. From 2482714506ad10cb3e952aec349dd0812d2de37e Mon Sep 17 00:00:00 2001 From: Nano Taboada <87288+nanotaboada@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:34:38 -0300 Subject: [PATCH 2/2] ci: migrate Azure Pipeline from Windows/MSBuild to Linux/.NET CLI - Replace windows-latest with ubuntu-latest for faster builds - Remove legacy VSBuild/VSTest tasks in favor of DotNetCoreCLI@2 - Add NuGet package caching based on packages.lock.json hash - Add explicit checkout step for clarity - Add trigger for feature/* branches and pull requests - Remove code coverage publishing (handled by GitHub Actions) - Add descriptive comments mapping Azure Pipelines to GitHub Actions syntax - Align step names with GitHub Actions workflow for consistency --- azure-pipelines.yml | 102 +++++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 35 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 87807d8..cb0d074 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,44 +1,76 @@ -# ASP.NET Core (.NET Framework) -# Build and test ASP.NET Core projects targeting the full .NET Framework. -# Add steps that publish symbols, save build artifacts, and more: -# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core +# ASP.NET Core 8.0 +# Build and test ASP.NET Core projects targeting .NET 8 on Linux. +# https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core +# Trigger pipeline on commits to master and pull requests (equivalent to GitHub Actions 'on: [push, pull_request]') trigger: -- master + - master + - feature/* +pr: + - master + +# Agent pool configuration (equivalent to GitHub Actions 'runs-on: ubuntu-latest') pool: - vmImage: 'windows-latest' + vmImage: "ubuntu-latest" +# Environment variables (equivalent to GitHub Actions 'env:') variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' + buildConfiguration: "Release" + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 # Skip .NET welcome message + DOTNET_NOLOGO: true # Suppress .NET logo in output NUGET_PACKAGES: $(Pipeline.Workspace)/.nuget/packages +# Pipeline steps (equivalent to GitHub Actions 'steps:') steps: -- task: NuGetToolInstaller@1 - -- task: Cache@2 - inputs: - key: 'nuget | "$(Agent.OS)" | **/packages.lock.json,!**/bin/**,!**/obj/**' - restoreKeys: | - nuget | "$(Agent.OS)" - path: '$(NUGET_PACKAGES)' - cacheHitVar: 'CACHE_RESTORED' - -- task: NuGetCommand@2 - condition: ne(variables.CACHE_RESTORED, true) - inputs: - restoreSolution: '$(solution)' - -- task: VSBuild@1 - inputs: - solution: '$(solution)' - msbuildArgs: '/t:Restore /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' - -- task: VSTest@2 - inputs: - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' \ No newline at end of file + # Checkout repository (equivalent to actions/checkout@v6) + # Azure Pipelines does this implicitly, but making it explicit for clarity + - checkout: self + displayName: "Checkout repository" + + # Cache NuGet packages (equivalent to actions/setup-dotnet cache feature) + # Uses packages.lock.json hash as cache key for faster restores + - task: Cache@2 + displayName: "Cache NuGet packages" + inputs: + key: 'nuget | "$(Agent.OS)" | **/packages.lock.json' + restoreKeys: | + nuget | "$(Agent.OS)" + path: $(NUGET_PACKAGES) + + # Install .NET 8 SDK (equivalent to actions/setup-dotnet@v5) + # performMultiLevelLookup: allows finding other SDK versions if needed + - task: UseDotNet@2 + displayName: "Set up .NET 8" + inputs: + version: "8.x" + performMultiLevelLookup: true + + # Restore NuGet packages (equivalent to 'dotnet restore') + # feedsToUse: 'select' uses feeds from NuGet.config + - task: DotNetCoreCLI@2 + displayName: "Restore dependencies" + inputs: + command: "restore" + projects: "**/*.csproj" + feedsToUse: "select" + + # Build the solution (equivalent to 'dotnet build') + # --no-restore: skip restore since we just did it (faster build) + - task: DotNetCoreCLI@2 + displayName: "Build projects" + inputs: + command: "build" + projects: "**/*.sln" + arguments: "--configuration $(buildConfiguration) --no-restore" + + # Run unit tests (equivalent to 'dotnet test') + # --no-build: use already-built assemblies (faster) + # publishTestResults: automatically publish test results to Azure DevOps (built-in feature) + - task: DotNetCoreCLI@2 + displayName: "Run tests" + inputs: + command: "test" + projects: "**/*Tests/*.csproj" + arguments: "--configuration $(buildConfiguration) --no-build" + publishTestResults: true