name: Build

on:
  push:
    branches: [master]
  pull_request:
  release:
    types: [created]

jobs:
  tests:
    runs-on: ubuntu-latest
    name: Build and test
    strategy:
      fail-fast: false
      matrix:
        php: [7.2, 7.3, 7.4, 8.0, 8.1]
        composer-flags: [ "" ]
        symfony-version: [ "" ]
        include:
          -   php: 7.2
              symfony-version: '3.*'
          -   php: 7.3
              symfony-version: '4.*'
          -   php: 7.4
              symfony-version: '5.*'
          -   php: 8.0
              symfony-version: '5.*'

    steps:
      -   uses: actions/checkout@v2

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

      -   name: Update Symfony version
          if: matrix.symfony-version != ''
          run: composer require --no-update "symfony/symfony:${{ matrix.symfony-version }}"

      -   name: Install dependencies
          run: composer update ${{ matrix.composer-flags }}

      -   name: Run tests (phpunit)
          run: ./vendor/bin/phpunit
