Skip to content
Merged
Changes from all commits
Commits
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
70 changes: 67 additions & 3 deletions .github/workflows/build-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,56 @@ on:
branches: [ main ]
workflow_dispatch:

permissions:
contents: read

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/**'

build-dotnet-samples:
name: Build .NET Samples
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.dotnet == 'true' }}

steps:
- uses: actions/checkout@v4
Expand All @@ -29,6 +75,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
Expand Down Expand Up @@ -59,6 +107,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
Expand All @@ -74,6 +124,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
Expand All @@ -92,6 +144,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
Expand All @@ -107,6 +161,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
Expand All @@ -122,6 +178,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
Expand All @@ -140,6 +198,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
Expand All @@ -161,6 +221,8 @@ jobs:
build-blazor-hybrid-samples:
name: Build Blazor Hybrid Samples
runs-on: windows-latest
needs: changes
if: ${{ needs.changes.outputs.blazor-hybrid == 'true' }}

steps:
- uses: actions/checkout@v4
Expand All @@ -176,18 +238,20 @@ jobs:
- 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"

- name: Build HybridTodoApp Website
run: dotnet build "Blazor Hybrid/sample-code/HybridTodoApp.Website/HybridTodoApp.Website.csproj"

- name: Build HybridTodoApp (Windows only)
run: dotnet build "Blazor Hybrid/sample-code/HybridTodoApp/HybridTodoApp.csproj" -f net10.0-windows10.0.19041.0

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:
Expand Down