nutgram/nutgram

View on GitHub
.github/workflows/php.yml

Summary

Maintainability
Test Coverage
name: Test Suite

on:
    push:
        branches: [ master, 4.x, 3.x ]
    pull_request:
        branches: [ master, 4.x, 3.x ]

jobs:
    tests:
        runs-on: ubuntu-latest
        strategy:
            fail-fast: false
            matrix:
                php: [ 8.2, 8.3 ]

        name: PHP ${{ matrix.php }}
        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: Cache Composer packages
                id: composer-cache
                uses: actions/cache@v2
                with:
                    path: vendor
                    key: ${{ runner.os }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.json') }}
                    restore-keys: |
                        ${{ runner.os }}-php-${{ matrix.php }}

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

            -   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-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 --no-progress --no-ansi

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