name: Package exe with PyInstaller - Windows

on:
  push:
    branches: [ main, dev ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: TEST PyInstaller Windows Build
      shell: bash
      run: |
        echo "test" > maigret_standalone_win32

    - name: TEST Upload PyInstaller Binary to Workflow as Artifact
      uses: actions/upload-artifact@v4
      with:
        name: maigret_standalone_win32
        path: maigret_standalone_win32

    # - name: PyInstaller Windows Build
    #   uses: JackMcKew/pyinstaller-action-windows@main
    #   with:
    #     path: pyinstaller

    # - name: Upload PyInstaller Binary to Workflow as Artifact
    #   uses: actions/upload-artifact@v4
    #   with:
    #     name: maigret_standalone_win32
    #     path: pyinstaller/dist/windows

    - name: Download PyInstaller Binary
      uses: actions/download-artifact@v4
      with:
        name: maigret_standalone_win32

    - name: Remove Previous Release
      uses: soxoj/delete-release-action@v1
      with:
        release_name: ${{ github.ref_name }}
      env:
        GITHUB_TOKEN: ${{ github.token }}

# test change

    - name: Create New Release
      uses: actions/create-release@v1
      id: create_release
      with:
        draft: false
        prerelease: true
        release_name: Windows Release [${{ github.ref_name }}]
        tag_name: ${{ github.ref_name }}-${{ github.run_number }}
        body: |
          This is a development release, built from the branch **${{ github.ref_name }}**.
          Download the attached file "maigret_standalone_win32.zip" to get the Windows executable.
      env:
        GITHUB_TOKEN: ${{ github.token }}

    - name: Upload PyInstaller Binary to Release
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ github.token }}
      with:
        upload_url: ${{ steps.create_release.outputs.upload_url }}
        asset_path: ./maigret_standalone_win32
        asset_name: maigret_standalone_win32
        asset_content_type: application/zip