name: Run tests on: push: pull_request: schedule: - cron: '0 0 * * *' jobs: php-tests: runs-on: ${{ matrix.os }} strategy: matrix: php: [8.0, 7.4, 7.3, 7.2] laravel: [6.*, 5.8.*, 5.7.*, 5.6.*, 5.5.*] dependency-version: [prefer-lowest, prefer-stable] os: [ubuntu-latest, windows-latest] include: - laravel: 6.* testbench: 4.* - laravel: 5.8.* testbench: 3.8.* - laravel: 5.7.* testbench: 3.7.* - laravel: 5.6.* testbench: 3.6.* - laravel: 5.5.* testbench: 3.5.* exclude: - laravel: 5.8.* php: 8.0 - laravel: 5.7.* php: 8.0 - laravel: 5.6.* php: 8.0 - laravel: 5.5.* php: 8.0 - laravel: 5.7.* php: 7.4 - laravel: 5.6.* php: 7.4 - laravel: 5.5.* php: 7.4 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, gd, fileinfo coverage: none - name: Install dependencies run: | composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Execute tests run: vendor/bin/phpunit - name: Send Slack notification uses: 8398a7/action-slack@v2 if: ${{ failure() && !! env.SLACK_WEBHOOK }} 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 - name: Send Slack notification uses: 8398a7/action-slack@v2 if: ${{ failure() && !! env.SLACK_WEBHOOK }} with: status: ${{ job.status }} author_name: ${{ github.actor }} env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}