name: Pack

on:
  push:
    branches: [ "action/pack" ]
  pull_request:
    branches: [ "action/pack" ]

jobs:
  nuget_desktop:
    runs-on: windows-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.1

      - name: Nuget Semi.Avalonia
        run: dotnet pack ./src/Semi.Avalonia -o ./nugets

      - name: Nuget Semi.Avalonia.ColorPicker
        run: dotnet pack ./src/Semi.Avalonia.ColorPicker  -o ./nugets

      - name: Nuget Semi.Avalonia.DataGrid
        run: dotnet pack ./src/Semi.Avalonia.DataGrid  -o ./nugets

      - name: Nuget Semi.Avalonia.TreeDataGrid
        run: dotnet pack ./src/Semi.Avalonia.TreeDataGrid  -o ./nugets

      - name: Desktop
        run: dotnet publish ./demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained true

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v4.3.1
        with:
          name: nuget_desktop
          path: |
            ./nugets
            ./**/publish/*.exe

  android:
    runs-on: windows-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.1

      - name: CD Android
        run: cd ./demo/Semi.Avalonia.Demo.Android

      - name: Restore Dependencies
        run: dotnet restore

      - name: Build
        run: dotnet publish ./demo/Semi.Avalonia.Demo.Android -c Release -f net7.0-android --no-restore

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v4.3.1
        with:
          name: android
          path: ./**/publish/*Signed.apk
