name: Go

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

permissions:
  contents: read  #  to fetch code (actions/checkout)

jobs:

  build:
    permissions:
      contents: read  #  to fetch code (actions/checkout)
      checks: write  #  to create a new check based on the results (shogo82148/actions-goveralls)

    name: Build
    runs-on: ubuntu-latest
    steps:

    - name: Set up Go 1.x
      uses: actions/setup-go@v4
      with:
        go-version: '1.21'
      id: go

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

    - name: Install CI
      run: |
        go get -v -t -d ./...

    - name: Install additional CI for nektos/act
      run: |
            apt update
            apt install -y make gcc libc-dev git
      if: github.actor == 'nektos/act'

    - name: Test
      run: make test

    - name: Send coverage
      uses: shogo82148/actions-goveralls@v1
      with:
        path-to-profile: profile.cov
      if: github.actor != 'nektos/act'
