name: Opencast PHP Library CI

on: [push, pull_request]

jobs:
  compatibility:
    name: Comaptibility
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        php-version:
          - "8.1"
          - "8.2"
          - "8.3"
        dependency-versions:
          - "lowest"
          - "highest"

    steps:
      - name: Repo checkout
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
          coverage: none

      - name: Install composer dependencies
        uses: ramsey/composer-install@v3
        with:
          dependency-versions: ${{ matrix.dependency-versions }}

      - name: PHP Compatibility
        run: composer sniffer:php${{ matrix.php-version }}

  unittest:
    needs: compatibility
    name: PHPUnit Test
    runs-on: ubuntu-latest
    steps:
      - name: Repo checkout
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.1
          coverage: none

      - name: Install composer dependencies
        uses: ramsey/composer-install@v3
        with:
          dependency-versions: 8.1

      - name: Run PHPUnit
        run: vendor/bin/phpunit --display-incomplete --display-phpunit-deprecations  --display-deprecations --display-errors --display-warnings --display-skipped --display-notices
