name: FreeBSD

on: [push, pull_request]

jobs:
  build:
    if: ${{ github.repository_owner == 'tavianator' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }}

    runs-on: ubuntu-latest

    concurrency: muon

    steps:
      - uses: actions/checkout@v2

      - uses: tailscale/github-action@main
        with:
          authkey: ${{ secrets.TAILSCALE_KEY }}
          version: 1.8.3

      - name: Configure SSH
        env:
          SSH_KEY: ${{ secrets.SSH_KEY }}
        run: |
          mkdir ~/.ssh
          printf '%s' "$SSH_KEY" >~/.ssh/github-actions
          chmod 0600 ~/.ssh/github-actions
          printf 'Host %s\n\tStrictHostKeyChecking=accept-new\n\tUser github\n\tIdentityFile ~/.ssh/github-actions\n' "$(tailscale ip -6 muon)" >~/.ssh/config

      - name: Run tests
        run: |
          muon=$(tailscale ip -6 muon)
          rsync -rl --delete . "[$muon]:bfs"
          ssh "$muon" 'gmake -C bfs -j$(sysctl -n hw.ncpu) distcheck'