# This is a basic workflow to help you get started with Actions

name: release

# Controls when the action will run. 
on:
  # Triggers the workflow on push or pull request events but only for the master branch
  push:
    tags:
      - 'v*'
          
jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      -
        name: Set up Go
        uses: actions/setup-go@v3
        with:
          go-version: 1.18
      # ubuntu is missing wixl https://github.com/actions/virtual-environments/issues/3857
      -
        name: "Install GNOME msitools (wixl)"
        run: sudo apt update -qq && sudo apt install -qq -y wixl
      -
        name: Import GPG signing key
        id: import_gpg
        uses: crazy-max/ghaction-import-gpg@v4
        with:
          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
          passphrase: ${{ secrets.PASSPHRASE }}
      -
        name: Debug
        run:  |
          echo "GPG ---------------------"
          echo "fingerprint: ${{ steps.import_gpg.outputs.fingerprint }}"
          echo "keyid:       ${{ steps.import_gpg.outputs.keyid }}"
          echo "name:        ${{ steps.import_gpg.outputs.name }}"
          echo "email:       ${{ steps.import_gpg.outputs.email }}"
          echo "Go env ------------------"
          pwd
          echo ${HOME}
          echo ${GITHUB_WORKSPACE}
          echo ${GOPATH}
          echo ${GOROOT}
          env
      -
        name: Generate release-notes
        run: |
          go run helpers/changelog/main.go >../RELEASE_NOTES
      -
        name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2.9.1
        with:
          version: latest
          args: release --rm-dist --release-notes=../RELEASE_NOTES
        env:
          GITHUB_TOKEN: ${{ secrets.GH_PAT }}
          GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
          GOPATH: /home/runner/go
      -
        name: "Add Windows installer (msi) to release"
        run: |  # until https://github.com/goreleaser/goreleaser/issues/1295, disabled until #2038 is fixed
          tag="${GITHUB_REF#refs/tags/}"
          version=${tag#v}
          echo MSI_VERSION=${version} make msi
          echo msi=dist/gopass-${version}-windows-amd64.msi
          echo mv dist/gopass_windows_amd64/gopass.msi ${msi}
          echo gh release upload "${tag}" "${msi}"
        env:
          GITHUB_TOKEN: ${{ secrets.GH_PAT }}
      -
        name: "Upload deb files to apt hosting"
        run: |
          for D in dist/*.deb; do
            curl -H"X-Filename: ${D}" -H"X-Apikey: ${APIKEY}" -XPOST --data-binary @$D http://packages.gauner.org/repos/gopass/upload
          done
        env:
          APIKEY: ${{ secrets.APT_APIKEY }}

