name: Build

on:
  push:
    branches:
      - 'main'
    paths-ignore:
      - '**/LICENSE'
      - '**/README.md'
      - '**/build.yml'
      - '**/.gitignore'
      - '**/.gitattributes'
  workflow_dispatch:
jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v3
      - uses: microsoft/setup-msbuild@v1.1

      - name: Nuget Restore
        run: nuget restore

      - name: Build .Net6
        run: msbuild /t:AssetStudio_GUI:publish /p:Configuration=Release /p:TargetFramework=net6.0-windows /p:SelfContained=false /verbosity:minimal

      - name: Build .Net7
        run: msbuild /t:AssetStudio_GUI:publish /p:Configuration=Release /p:TargetFramework=net7.0-windows /p:SelfContained=false /verbosity:minimal

      - name: Build .Net6 CLI
        run: msbuild /t:AssetStudio_CLI:publish /p:Configuration=Release /p:TargetFramework=net6.0-windows /p:SelfContained=false /verbosity:minimal

      - name: Build .Net7 CLI
        run: msbuild /t:AssetStudio_CLI:publish /p:Configuration=Release /p:TargetFramework=net7.0-windows /p:SelfContained=false /verbosity:minimal

      - name: Upload .Net6 Artifact
        uses: actions/upload-artifact@v3
        with:
          name: net6.0-${{ github.sha }}
          path: AssetStudio.GUI/bin/Release/net6.0-windows/publish

      - name: Upload .Net7 Artifact
        uses: actions/upload-artifact@v3
        with:
          name: net7.0-${{ github.sha }}
          path: AssetStudio.GUI/bin/Release/net7.0-windows/publish

      - name: Upload .Net6 CLI Artifact
        uses: actions/upload-artifact@v3
        with:
          name: net6.0-${{ github.sha }}
          path: AssetStudio.GUI/bin/Release/net6.0-windows/publish

      - name: Upload .Net7 CLI Artifact
        uses: actions/upload-artifact@v3
        with:
          name: net7.0-${{ github.sha }}
          path: AssetStudio.GUI/bin/Release/net7.0-windows/publish
