From bc374bd6ca3c56c15af32de8b8c61b12e4fb655e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 17 Nov 2025 21:59:22 +0000 Subject: [PATCH 1/4] Initial plan From 7c96bc12857508bfde80147c52b2a4fafe61232f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 17 Nov 2025 22:03:35 +0000 Subject: [PATCH 2/4] Add smart path filtering to build validation workflow Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> --- .github/workflows/build-validation.yml | 62 ++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index 33fca27..217393d 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -8,9 +8,53 @@ on: workflow_dispatch: jobs: + changes: + name: Detect Changes + runs-on: ubuntu-latest + outputs: + dotnet: ${{ steps.filter.outputs.dotnet }} + blazor: ${{ steps.filter.outputs.blazor }} + webapi: ${{ steps.filter.outputs.webapi }} + nuget: ${{ steps.filter.outputs.nuget }} + visualstudio: ${{ steps.filter.outputs.visualstudio }} + container: ${{ steps.filter.outputs.container }} + ai-ml: ${{ steps.filter.outputs.ai-ml }} + iot: ${{ steps.filter.outputs.iot }} + blazor-hybrid: ${{ steps.filter.outputs.blazor-hybrid }} + maui: ${{ steps.filter.outputs.maui }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + dotnet: + - '.NET/**' + blazor: + - 'Frontend Web with Blazor/**' + webapi: + - 'Backend Web with Web APIs/**' + nuget: + - 'Package Management with NuGet/**' + visualstudio: + - 'Visual Studio/**' + container: + - 'Containers/**' + ai-ml: + - 'Artificial Intelligence and Machine Learning/**' + iot: + - 'IoT/**' + blazor-hybrid: + - 'Blazor Hybrid/**' + maui: + - '.NET MAUI/**' + - 'Blazor Hybrid/**' + build-dotnet-samples: name: Build .NET Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.dotnet == 'true' }} steps: - uses: actions/checkout@v4 @@ -29,6 +73,8 @@ jobs: build-blazor-samples: name: Build Blazor Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.blazor == 'true' }} steps: - uses: actions/checkout@v4 @@ -59,6 +105,8 @@ jobs: build-webapi-samples: name: Build Web API Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.webapi == 'true' }} steps: - uses: actions/checkout@v4 @@ -74,6 +122,8 @@ jobs: build-nuget-samples: name: Build NuGet Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.nuget == 'true' }} steps: - uses: actions/checkout@v4 @@ -92,6 +142,8 @@ jobs: build-visualstudio-samples: name: Build Visual Studio Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.visualstudio == 'true' }} steps: - uses: actions/checkout@v4 @@ -107,6 +159,8 @@ jobs: build-container-samples: name: Build Container Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.container == 'true' }} steps: - uses: actions/checkout@v4 @@ -122,6 +176,8 @@ jobs: build-ai-ml-samples: name: Build AI/ML Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.ai-ml == 'true' }} steps: - uses: actions/checkout@v4 @@ -140,6 +196,8 @@ jobs: build-iot-samples: name: Build IoT Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.iot == 'true' }} steps: - uses: actions/checkout@v4 @@ -161,6 +219,8 @@ jobs: build-blazor-hybrid-samples: name: Build Blazor Hybrid Samples runs-on: ubuntu-latest + needs: changes + if: ${{ needs.changes.outputs.blazor-hybrid == 'true' }} steps: - uses: actions/checkout@v4 @@ -182,6 +242,8 @@ jobs: build-maui-samples: name: Build MAUI Samples (Windows) runs-on: windows-latest + needs: changes + if: ${{ needs.changes.outputs.maui == 'true' }} # Note: MAUI projects require platform-specific workloads and are built on Windows steps: From d8c8d6c305cf630a123a91bdf81ebd6f411a780a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 17 Nov 2025 22:05:20 +0000 Subject: [PATCH 3/4] Add explicit permissions to workflow for security Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> --- .github/workflows/build-validation.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index 217393d..bf73fac 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -7,6 +7,9 @@ on: branches: [ main ] workflow_dispatch: +permissions: + contents: read + jobs: changes: name: Detect Changes From 2a02d17aafdb1439f1c5e3698d3745d22607ba9c Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 17 Nov 2025 14:10:35 -0800 Subject: [PATCH 4/4] updates --- .github/workflows/build-validation.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index bf73fac..48de0a7 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -51,7 +51,6 @@ jobs: - 'Blazor Hybrid/**' maui: - '.NET MAUI/**' - - 'Blazor Hybrid/**' build-dotnet-samples: name: Build .NET Samples @@ -221,7 +220,7 @@ jobs: build-blazor-hybrid-samples: name: Build Blazor Hybrid Samples - runs-on: ubuntu-latest + runs-on: windows-latest needs: changes if: ${{ needs.changes.outputs.blazor-hybrid == 'true' }} @@ -235,6 +234,12 @@ jobs: - name: Install .NET MAUI workload run: dotnet workload install maui + + - name: Restore HybridTodoApp + run: dotnet restore "Blazor Hybrid/sample-code/HybridTodoApp.sln" + + - name: Build HybridTodoApp (Windows only) + run: dotnet build "Blazor Hybrid/sample-code/HybridTodoApp/HybridTodoApp.csproj" -f net10.0-windows10.0.19041.0 - name: Build HybridTodoApp Components run: dotnet build "Blazor Hybrid/sample-code/HybridTodoApp.Components/HybridTodoApp.Components.csproj" @@ -265,9 +270,3 @@ jobs: - name: Build MauiApp2 (Windows only) run: dotnet build ".NET MAUI/sample-code/MauiApp2.sln" -f net10.0-windows10.0.19041.0 - - - name: Restore HybridTodoApp - run: dotnet restore "Blazor Hybrid/sample-code/HybridTodoApp.sln" - - - name: Build HybridTodoApp (Windows only) - run: dotnet build "Blazor Hybrid/sample-code/HybridTodoApp/HybridTodoApp.csproj" -f net10.0-windows10.0.19041.0