name: CI

on:
  push:
  pull_request:

jobs:
  PHPUnit:
    name: PHPUnit (PHP ${{ matrix.php }})
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        php:
          - 8.4
          - 8.3
          - 8.2
          - 8.1
          - 8.0
          - 7.4
          - 7.3
          - 7.2
          - 7.1
          - 7.0
          - 5.6
          - 5.5
          - 5.4
          - 5.3
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          coverage: xdebug
      - run: composer install
      - run: docker run --net=host -d redis
      - run: REDIS_URI=localhost:6379 vendor/bin/phpunit --coverage-text
        if: ${{ matrix.php >= 7.3 }}
      - run: REDIS_URI=localhost:6379 vendor/bin/phpunit --coverage-text -c phpunit.xml.legacy
        if: ${{ matrix.php < 7.3 }}

  PHPUnit-hhvm:
    name: PHPUnit (HHVM)
    runs-on: ubuntu-24.04
    continue-on-error: true
    services:
      redis:
        image: redis
    steps:
      - uses: actions/checkout@v4
      - run: cp "$(which composer)" composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM
      - name: Run hhvm composer.phar install
        uses: docker://hhvm/hhvm:3.30-lts-latest
        with:
          args: hhvm composer.phar install
      - name: Run REDIS_URI=redis:6379 hhvm vendor/bin/phpunit
        uses: docker://hhvm/hhvm:3.30-lts-latest
        with:
          args: hhvm vendor/bin/phpunit
        env:
          REDIS_URI: redis:6379
