nutgram/laravel

View on GitHub
.github/workflows/php.yml

Summary

Maintainability
Test Coverage
name: Test Suite

on:
    push:

jobs:
    tests:
        runs-on: ubuntu-latest
        strategy:
            fail-fast: false
            matrix:
                php: [ 8.2, 8.3 ]
                laravel: [9.*, 10.*, 11.*]
                include:
                    -   laravel: 11.*
                        testbench: 9.*
                        termwind: 2.*
                        pest: 2.*
                    -   laravel: 10.*
                        testbench: 8.*
                        termwind: 1.*
                        pest: 1.*
                    -   laravel: 9.*
                        testbench: 7.*
                        termwind: 1.*
                        pest: 1.*

        name: PHP ${{ matrix.php }} + Laravel ${{ matrix.laravel }}
        steps:
            -   uses: actions/checkout@v2

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

            -   name: Validate composer.json and composer.lock
                run: composer validate

            -   name: Install dependencies
                run: |
                    composer require "laravel/framework:${{ matrix.laravel }}" "nunomaduro/termwind:${{ matrix.termwind }}" --no-interaction --no-update
                    composer require "orchestra/testbench:${{ matrix.testbench }}" "pestphp/pest:${{ matrix.pest }}" "pestphp/pest-plugin-mock:${{ matrix.pest }}" --dev --no-interaction --no-update
                    composer update --prefer-dist --no-interaction

            -   name: Run test suite
                run: composer run-script test
    coverage:
        name: Coverage
        needs: [ tests ]
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v2
            -   name: Setup PHP
                uses: shivammathur/setup-php@v2
                with:
                    php-version: 8.2
                    coverage: xdebug

            -   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-8.2-${{ hashFiles('**/composer.json') }}
                    restore-keys: |
                        ${{ runner.os }}-php-8.2-

            -   name: Install dependencies
                if: steps.composer-cache.outputs.cache-hit != 'true'
                run: composer install --prefer-dist --no-interaction --no-suggest

            -   name: Run test suite
                uses: paambaati/codeclimate-action@v3.2.0
                env:
                    CC_TEST_REPORTER_ID: ${{ secrets.CC_REPORTER_ID }}
                with:
                    coverageCommand: composer run-script test-coverage
                    coverageLocations: ${{github.workspace}}/coverage.xml:clover
    static-analysis:
        runs-on: ubuntu-latest
        name: Psalm
        steps:
            -   uses: actions/checkout@v2

            -   name: Setup PHP
                uses: shivammathur/setup-php@v2
                with:
                    php-version: 8.2
                    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.json') }}
                    restore-keys: |
                        ${{ runner.os }}-php-

            -   name: Install dependencies
                if: steps.composer-cache.outputs.cache-hit != 'true'
                run: composer install --no-progress --no-ansi

            -   name: Run Psalm
                run: composer run-script psalm