name: upstream
concurrency:
  group: "${{github.workflow}}-${{github.ref}}"
  cancel-in-progress: true
on:
  workflow_dispatch:
  schedule:
    - cron: "0 8 * * 5" # At 08:00 on Friday # https://crontab.guru/#0_8_*_*_5
  pull_request:
    types: [opened, synchronize]
    branches:
      - "*"
    paths:
      - .github/workflows/upstream.yml # this file

jobs:
  test-unit:
    env:
      MAKEFLAGS: -j2
    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest, windows-latest, macos-latest]
        ruby: ["head"]
    runs-on: ${{ matrix.platform }}
    steps:
      - name: configure git crlf on windows
        if: matrix.platform == 'windows-latest'
        run: |
          git config --system core.autocrlf false
          git config --system core.eol lf
      - uses: actions/checkout@v4
      - uses: MSP-Greg/setup-ruby-pkgs@v1
        with:
          apt-get: _update_ build-essential cmake
          mingw: _upgrade_ cmake
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true
      - run: bundle exec rake test:unit
