name:  WpfExtended CD Pipeline

on:
  push:
    branches:
      - master
      
jobs:

  build:
    environment: Default
    strategy:
      matrix:
        targetplatform: [x64]

    runs-on: windows-latest

    env:
      Configuration: Release
      Solution_Path: WpfExtended.sln
      Test_Project_Path: Slim.Tests\Slim.Tests.csproj
      Source_Project_Path: Slim\Slim.csproj
      Actions_Allow_Unsecure_Commands: true

    steps:
    - name: Checkout
      uses: actions/checkout@v2
      with:
        fetch-depth: 0

    - name: Install .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: '5.0.202'

    - name: Setup MSBuild.exe
      uses: microsoft/setup-msbuild@v1.0.1

    - name: Restore Projects
      run: msbuild $env:Solution_Path /t:Restore /p:Configuration=$env:Configuration /p:RuntimeIdentifier=$env:RuntimeIdentifier
      env:
        RuntimeIdentifier: win-${{ matrix.targetplatform }}

    - name: Build WpfExtended project
      run: dotnet build WpfExtended -c $env:Configuration -p:SolutionDir=$env:GITHUB_WORKSPACE

    - name: Push WpfExtended Nuget package
      uses: brandedoutcast/publish-nuget@v2.5.5
      with:
         PROJECT_FILE_PATH: WpfExtended\WpfExtended.csproj
         NUGET_KEY: ${{secrets.NUGET_API_KEY}}

    - name: Build WpfExtended.SourceGeneration project
      run: dotnet build WpfExtended.SourceGeneration -c $env:Configuration

    - name: Push WpfExtended.SourceGeneration Nuget package
      uses: brandedoutcast/publish-nuget@v2.5.5
      with:
         PROJECT_FILE_PATH: WpfExtended.SourceGeneration\WpfExtended.SourceGeneration.csproj
         NUGET_KEY: ${{secrets.NUGET_API_KEY}}
