name: Inno
on:
  release:
    types: [published]

jobs:
  publish:
    runs-on: windows-latest
    strategy:
      matrix:
        arch: [amd64, arm64, 386]
    defaults:
      run:
        shell: pwsh
        working-directory: ${{ github.workspace }}/packages/inno
    steps:
    - name: Checkout code 👋
      uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
    - name: Build installer 📦
      id: build
      env:
        CERTIFICATE: ${{ secrets.CERTIFICATE }}
        CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
      run: |
        $version = $env:GITHUB_REF.TrimStart("refs/tags/v")
        ./build.ps1 -Architecture ${{ matrix.arch }}  -Version $version
    - name: Upload artifacts 🆙
      uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410
      with:
        github-token: ${{secrets.GITHUB_TOKEN}}
        script: |
          console.log('environment', process.versions);

          const fs = require('fs').promises;

          const { repo: { owner, repo }, sha } = context;
          console.log({ owner, repo, sha });

          for (let file of await fs.readdir('./packages/inno/Output')) {
            console.log('uploading', file);

            await github.rest.repos.uploadReleaseAsset({
              owner, repo,
              release_id: ${{ github.event.release.id }},
              name: file,
              data: await fs.readFile(`./packages/inno/Output/${file}`)
            });
          }
  notify:
    runs-on: ubuntu-latest
    needs: publish
    steps:
    - name: Notify Winget Build 🙋🏾‍♀️
      uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410
      with:
        github-token: ${{ secrets.GH_PAT }}
        script: |
          await github.request('POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches', {
            owner: 'jandedobbeleer',
            repo: '${{ github.event.repository.name }}',
            workflow_id: 'winget.yml',
            ref: 'main',
            inputs: {"version": process.env.GITHUB_REF.replace('refs/tags/v', '')}
          })
    - name: Notify Windows Store Build 👋
      uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410
      with:
        github-token: ${{ secrets.GH_PAT }}
        script: |
          await github.request('POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches', {
            owner: 'jandedobbeleer',
            repo: '${{ github.event.repository.name }}',
            workflow_id: 'microsoft_store.yml',
            ref: 'main',
            inputs: {"version": process.env.GITHUB_REF.replace('refs/tags/v', '')}
          })
    - name: Notify Scoop Build 🤙
      uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410
      with:
        github-token: ${{ secrets.GH_PAT }}
        script: |
          await github.request('POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches', {
            owner: 'jandedobbeleer',
            repo: '${{ github.event.repository.name }}',
            workflow_id: 'scoop.yml',
            ref: 'main',
            inputs: {"version": process.env.GITHUB_REF.replace('refs/tags/v', ''), "release": "${{ github.event.release.id }}" }
          })

