name: Run tests on: push: pull_request: schedule: - cron: '0 0 * * *' jobs: php-tests: runs-on: ${{ matrix.os }} strategy: matrix: php: [7.4, 8.0, 8.1] laravel: [7.*, 8.*] dependency-version: [prefer-stable] os: [ubuntu-latest, windows-latest] exclude: - laravel: 7.* php: 8.1 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} - ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo coverage: none tools: composer:v2 - name: Install dependencies run: | composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update composer update --${{ matrix.dependency-version }} --no-interaction --no-progress - name: Execute tests run: vendor/bin/phpunit - name: Send Slack notification uses: 8398a7/action-slack@v2 if: failure() with: status: ${{ job.status }} author_name: ${{ github.actor }} env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} js-tests: runs-on: ubuntu-latest name: JavaScript tests steps: - name: Checkout code uses: actions/checkout@v1 - name: Install dependencies run: yarn install --non-interactive - name: Execute tests run: yarn run jest