# SPDX-FileCopyrightText: 2010 - 2024 the Friendica project
#
# SPDX-License-Identifier: CC0-1.0

name: Code Quality

on:
  push:
  pull_request:
  workflow_dispatch:

jobs:

  code-style:
    name: PHP-CS-Fixer (PHP ${{ matrix.php }})
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        operating-system: ['ubuntu-latest']
        php: ['8.3']

    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: Setup PHP with composer and extensions
        uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
        with:
          php-version: ${{ matrix.php }}
          coverage: xdebug
          tools: none

      - name: Clone addon repository
        run: git clone -b develop --single-branch https://git.friendi.ca/friendica/friendica-addons.git addon

      - name: Install PHP-CS-Fixer
        run: composer install --working-dir=bin/dev/php-cs-fixer

      - name: Run PHP-CS-Fixer
        continue-on-error: true
        run: bin/dev/php-cs-fixer/vendor/bin/php-cs-fixer fix --diff --dry-run

  phpstan:
    name: PHPStan (PHP ${{ matrix.php }})
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        operating-system: ['ubuntu-latest']
        php: ['8.4']

    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: Setup PHP with composer and extensions
        uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
        with:
          php-version: ${{ matrix.php }}
          coverage: xdebug
          tools: none

      - name: Clone addon repository
        run: git clone -b develop --single-branch https://git.friendi.ca/friendica/friendica-addons.git addon

      - name: Install Composer dependencies
        uses: "ramsey/composer-install@v2"

      - name: Run PHPStan
        run: composer run phpstan