name: Build Wakapi on Linux

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

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

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

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

    - name: Get dependencies
      run: |
        go get

    - name: Build
      run: GO111MODULE=on go build -v .

    - name: Zip executable and sample config
      if: github.event_name == 'release'
      run: |
        cp config.default.yml config.yml
        zip -9 release.zip wakapi config.yml

    - 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_linux_amd64.zip
        asset_content_type: application/gzip
