name: tests
on: [pull_request, push]
jobs:
  tests:
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-24.04
          - ubuntu-22.04
          - macos-15
          - macos-14
          - macos-13
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      # Normally, we would use the superbly maintained...
      # - uses: actions/setup-python@v2
      #   with:
      #    python-version: ${{ matrix.python-version }}
      # ... but in the repo, we want to test pyenv builds on Ubuntu
      # - run: |
          # sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
              # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
              # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
      # https://github.com/pyenv/pyenv#installation
      #- env:
      #    PYENV_ROOT: /home/runner/work/pyenv/pyenv
      #  run: |
      #    echo $PYENV_ROOT
      #    echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
      # macos-11 Github Actions env has an old `readlink` and lacks `greadlink` which causes Bats to break
      - run: |
          if [[ $RUNNER_OS == "macOS" ]] && [[ $(sw_vers -productVersion | awk -F. '{print $1}') -lt 12 ]]; then
            brew install coreutils
          fi
      - run: git clone https://github.com/bats-core/bats-core.git --depth=1 -b v1.2.0 bats
      - run: bats/bin/bats --tap test
