diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b7aaa5..d8a4875 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,35 +1,52 @@ name: Test + on: - push: - branches: - - main + push: + branches: [ main ] + pull_request: + branches: [ main ] + jobs: - tests: - name: Tests - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 7.4 - tools: pecl - extensions: pdo, sqlite, pdo_sqlite,json - coverage: none - - name: Validate composer.json and composer.lock - run: composer validate - - name: Cache Composer packages - id: composer-cache - uses: actions/cache@v2 - with: - path: vendor - key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-php- - - name: Install dependencies - if: steps.composer-cache.outputs.cache-hit != 'true' - run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs - - name: Execute tests (Unit and Feature tests) via PHPUnit - run: vendor/bin/phpunit + tests: + name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest ] + php: [8.0, 7.4 ] + laravel: [ 8.*] + dependency-version: [ prefer-stable ] + include: + - laravel: 8.* + testbench: 6.* + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Validate composer.json and composer.lock + run: composer validate --strict + + - name: Cache Composer packages + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: curl, mbstring, zip, pcntl, sqlite, pdo_sqlite, iconv + coverage: none + + - name: Install dependencies - L${{ matrix.laravel }} + run: | + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction + + - name: Execute tests + run: vendor/bin/phpunit \ No newline at end of file