name: Pack to NuGet

on:
  workflow_dispatch:
    inputs:
      Semi_Avalonia:
        description: 'Pack Semi.Avalonia'
        required: true
        default: 'true'
        type: boolean
      Semi_Avalonia_ColorPicker:
        description: 'Pack Semi.Avalonia.ColorPicker'
        required: true
        default: 'true'
        type: boolean
      Semi_Avalonia_DataGrid:
        description: 'Pack Semi.Avalonia.DataGrid'
        required: true
        default: 'true'
        type: boolean
      Semi_Avalonia_TreeDataGrid:
        description: 'Pack Semi.Avalonia.TreeDataGrid'
        required: true
        default: 'false'
        type: boolean

jobs:
  Pack_to_NuGet:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4.1.1

      - name: Pack Semi.Avalonia
        if: ${{ github.event.inputs.Semi_Avalonia == 'true' }}
        run: dotnet pack ./src/Semi.Avalonia -o ./nugets

      - name: Pack Semi.Avalonia.ColorPicker
        if: ${{ github.event.inputs.Semi_Avalonia_ColorPicker == 'true' }}
        run: dotnet pack ./src/Semi.Avalonia.ColorPicker -o ./nugets

      - name: Pack Semi.Avalonia.DataGrid
        if: ${{ github.event.inputs.Semi_Avalonia_DataGrid == 'true' }}
        run: dotnet pack ./src/Semi.Avalonia.DataGrid -o ./nugets

      - name: Pack Semi.Avalonia.TreeDataGrid
        if: ${{ github.event.inputs.Semi_Avalonia_TreeDataGrid == 'true' }}
        run: dotnet pack ./src/Semi.Avalonia.TreeDataGrid -o ./nugets

      - name: Publish NuGet package
        run: dotnet nuget push "./nugets/*.nupkg" --api-key ${{ secrets.NUGET_ORG_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v4.3.1
        with:
          name: nugets
          path: ./nugets
        if: always()