name: release
on:
  push:
    tags:
      - v*

jobs:
  release:
    name: release
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v4
        with:
          go-version-file: go.mod
          check-latest: true
      - uses: actions/cache@v3
        if: ${{ !env.ACT }}
        with:
          path: ~/go/pkg/mod
          key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
          restore-keys: |
            ${{ runner.os }}-go-
      - name: GoReleaser
        uses: goreleaser/goreleaser-action@v4
        with:
          version: latest
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
      - name: Chocolatey
        uses: ./.github/actions/choco
        with:
          version: ${{ github.ref }}
          apiKey: ${{ secrets.CHOCO_APIKEY }}
          push: true
      - name: GitHub CLI extension
        uses: actions/github-script@v6
        with:
          github-token: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
          script: |
            const mainRef = (await github.rest.git.getRef({
              owner: 'nektos',
              repo: 'gh-act',
              ref: 'heads/main',
            })).data;
            console.log(mainRef);
            github.rest.git.createRef({
              owner: 'nektos',
              repo: 'gh-act',
              ref: context.ref,
              sha: mainRef.object.sha,
            });
  winget:
    needs: release
    runs-on: windows-latest # Action can only run on Windows
    steps:
      - uses: vedantmgoyal2009/winget-releaser@v2
        with:
          identifier: nektos.act
          installers-regex: '_Windows_\w+\.zip$'
          token: ${{ secrets.WINGET_TOKEN }}