name: Build Wakapi on Windows

on:
  push:
    branches:
  pull_request:
  release:
    types:
      - published

jobs:
  build-and-release:
    name: Build
    runs-on: windows-latest
    steps:

    - name: Set up Go 1.x
      uses: actions/setup-go@v2
      with:
        go-version: ^1.13
      id: go

    - name: Check out code into the Go module directory
      uses: actions/checkout@v2

    - name: Get dependencies
      run: |
        go get github.com/markbates/pkger/cmd/pkger
        go get
        go generate

    - name: Enable Go 1.11 modules
      run: cmd /c "set GO111MODULE=on"

    - name: Build
      run: go build -v .

    - name: Compress working folder
      if: github.event_name == 'release'
      run: |
        cp .\config.default.yml .\config.yml
        Compress-Archive -Path .\wakapi.exe, .\config.yml -DestinationPath release.zip

    - name: Upload built executable to Release
      if: github.event_name == 'release'
      uses: actions/upload-release-asset@v1.0.2
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        upload_url: ${{ github.event.release.upload_url }}
        asset_path: release.zip
        asset_name: wakapi_win_amd64.zip
        asset_content_type: application/gzip