Aeliot-Tm/php-cs-fixer-baseline

View on GitHub
.github/workflows/automated_testing.yml

Summary

Maintainability
Test Coverage
name: Automated Testing

on:
  push:

permissions:
  contents: read

jobs:
  composer:
    name: Validate composer files
    runs-on: ubuntu-latest

    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2

      - uses: actions/checkout@v4

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

  cs-fixer:
    name: Check code style with CS Fixer
    runs-on: ubuntu-latest

    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2

      - uses: actions/checkout@v4

      - name: Cache Composer packages
        id: composer-cache
        uses: actions/cache@v4
        with:
          path: vendor
          key: "${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}"
          restore-keys: |
            ${{ runner.os }}-php-

      - name: Install dependencies
        uses: ramsey/composer-install@v3

      - name: Check code style
        run: composer run cs-fixer-check -- --show-progress=none

  phpstan:
    name: Static analyze with PHPStan
    runs-on: ubuntu-latest

    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2

      - uses: actions/checkout@v4

      - name: Cache Composer packages
        id: composer-cache
        uses: actions/cache@v4
        with:
          path: vendor
          key: "${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}"
          restore-keys: |
            ${{ runner.os }}-php-

      - name: Install dependencies
        uses: ramsey/composer-install@v3

      - name: Static analyze with PHPStan
        run: |
          composer run phpstan-clear && \
          composer run phpstan-analyse -- --no-progress

  phpunit:
    name: 'Tests: Unit'
    runs-on: ubuntu-latest

    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: 8.2

      - uses: actions/checkout@v4

      - name: Cache Composer packages
        id: composer-cache
        uses: actions/cache@v4
        with:
          path: vendor
          key: "${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}"
          restore-keys: |
            ${{ runner.os }}-php-

      - name: Install dependencies
        uses: ramsey/composer-install@v3

      - name: 'Run all PHPUnit tests'
        run: composer run phpunit