name: 'Release Plugin'

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Version v'
        required: true
        type: string

permissions:
  contents: write

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - name: Setup .NET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 8.0.x

    - name: Restore dependencies
      run: |
        dotnet nuget add source --username ${{ github.repository_owner }} --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name jellyfin-pre "https://nuget.pkg.github.com/jellyfin/index.json"
        dotnet tool install --global dotnet-outdated-tool
        dotnet outdated -pre Always -u -inc Jellyfin

    - name: Embed version info
      run: echo "${{ github.sha }}" > ConfusedPolarBear.Plugin.IntroSkipper/Configuration/version.txt

    - name: Build
      run: dotnet build --no-restore

    - name: Upload artifact
      uses: actions/upload-artifact@v4.3.1
      with:
        name: ConfusedPolarBear.Plugin.IntroSkipper-v${{ github.event.inputs.version }}.dll
        path: ConfusedPolarBear.Plugin.IntroSkipper/bin/Debug/net8.0/ConfusedPolarBear.Plugin.IntroSkipper.dll
        if-no-files-found: error

    - name: Create archive
      uses: vimtor/action-zip@v1.2
      with:
        files: |
          ConfusedPolarBear.Plugin.IntroSkipper/bin/Debug/net8.0/ConfusedPolarBear.Plugin.IntroSkipper.dll
        dest: intro-skipper-v${{ github.event.inputs.version }}.zip

    - name: Generate manifest keys
      run: |
        sourceUrl="https://github.com/${{ github.repository }}/releases/download/10.9/v${{ github.event.inputs.version }}/intro-skipper-v${{ github.event.inputs.version }}.zip"
        echo "SOURCE_URL=$sourceUrl" >> $GITHUB_ENV
        md5sum intro-skipper-v${{ github.event.inputs.version }}.zip > intro-skipper-v${{ github.event.inputs.version }}.md5
        checksum="$(awk '{print $1}' intro-skipper-v${{ github.event.inputs.version }}.md5)"
        echo "CHECKSUM=$checksum" >> $GITHUB_ENV
        timestamp="$(date +%FT%TZ)"
        echo "TIMESTAMP=$timestamp" >> $GITHUB_ENV

    - name: Publish release
      uses: 8bitDream/action-github-releases@v1.0.0
      with:
        repo_token: "${{ secrets.GITHUB_TOKEN }}"
        automatic_release_tag: 10.9/v${{ github.event.inputs.version }}
        prerelease: false
        title: v${{ github.event.inputs.version }}
        files: |
          intro-skipper-v${{ github.event.inputs.version }}.zip

    - name: Publish release notes
      uses: softprops/action-gh-release@v2.0.4
      with:
        tag_name: 10.9/v${{ github.event.inputs.version }}
        name: v${{ github.event.inputs.version }}
        append_body: true
        body: |
          ---
          "targetAbi": "10.9.0.0",
          "sourceUrl": "${{ env.SOURCE_URL }}",
          "checksum": "${{ env.CHECKSUM }}",
          "timestamp": "${{ env.TIMESTAMP }}"
        draft: false
        prerelease: false
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}