name: Test Suite on: push: branches: - main pull_request: jobs: test: runs-on: ubuntu-latest services: redis: image: redis ports: - 6379:6379 options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 mongodb: image: mongo ports: - 27017:27017 myriadb: image: mariadb env: MYSQL_ROOT_PASSWORD: root ports: - 3808:3808 - 3306:3306 postgres: image: postgres env: POSTGRES_DB: oauth2_server_php POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: --health-cmd="pg_isready -h localhost" --health-interval=10s --health-timeout=5s --health-retries=5 strategy: matrix: php: [ 7.2, 7.3, 7.4, "8.0", 8.1, 8.2 ] name: "PHP ${{ matrix.php }} Unit Test" steps: - uses: actions/checkout@v2 - uses: codecov/codecov-action@v1 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: mongodb, mbstring, intl, redis, pdo_mysql - name: Install composer dependencies uses: nick-invision/retry@v1 with: timeout_minutes: 10 max_attempts: 3 command: composer install - name: Run PHPUnit run: vendor/bin/phpunit -v phpstan: name: "PHPStan" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.1 - name: Install composer dependencies uses: nick-invision/retry@v1 with: timeout_minutes: 10 max_attempts: 3 command: composer install - name: Run PHPStan run: | composer require phpstan/phpstan vendor/bin/phpstan analyse --level=0 src/