name: Go Tests

on:
  workflow_dispatch:
  pull_request:
  schedule:
    - cron:  '0 0 * * *'
  push:
    branches: [ master ]

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
      fail-fast: false
    steps:
    - uses: actions/checkout@v2
    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.18
    - name: Go test
      if: ${{ !startsWith(github.event.head_commit.message, 'Release') }}
      run: |
          sudo apt-get update || true 
          sudo apt-get install -y zsh fish || true
          brew install fish tmux bash || true
          export TZ='America/Los_Angeles' # Force the time zone so that test output is consistent
          sudo chmod 0755 -R /usr/share/zsh/ || true  # Work around a weird bug where zsh on ubuntu actions gives that diretory 0777 which makes zsh refuse to start
          sudo hostname ghaction-runner-hostname || true # Set a consistent hostname so we can run tests that depend on it
          sudo scutil --set HostName ghaction-runner-hostname || true
          make test
    - name: Setup tmate session
      if: ${{ failure() }}
      uses: mxschmitt/action-tmate@v3
      with:
        limit-access-to-actor: true