# https://help.github.com/en/categories/automating-your-workflow-with-github-actions

on: # yamllint disable-line rule:truthy
  pull_request: ~
  push:
    branches:
      - "main"
      - "[0-9].*"

name: "Tests"

jobs:
  phpunit:
    name: "PHPUnit (${{ matrix.php-version }})"

    strategy:
      matrix:
        experimental:
          - false
        php-version:
          - "7.4"
          - "8.0"
          - "8.1"
          - "8.2"
          - "8.3"
          - "8.4"

    runs-on: "ubuntu-latest"

    steps:
      - name: "Checkout code"
        uses: "actions/checkout@v4"

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

      - name: "Determine composer cache directory"
        id: "composer-cache"
        run: "echo \"directory=$(composer config cache-dir)\" >> $GITHUB_OUTPUT"

      - name: "Cache dependencies installed with composer"
        uses: "actions/cache@v3"
        with:
          path: "${{ steps.composer-cache.outputs.directory }}"
          key: "composer-${{ matrix.php-version }}-${{ hashFiles('composer.*') }}"
          restore-keys: |
            composer-${{ matrix.php-version }}-
            composer-

      - name: "Download dependencies"
        run: "composer update --ansi --no-interaction --no-progress --optimize-autoloader"

      - name: "Run tests"
        run: "./vendor/bin/phpunit --colors=always"
