Skip to content

Commit

Permalink
Github Action : Lint PHP
Browse files Browse the repository at this point in the history
  • Loading branch information
Progi1984 committed Jan 3, 2024
1 parent 3160d40 commit 129d47f
Show file tree
Hide file tree
Showing 8 changed files with 572 additions and 13 deletions.
127 changes: 127 additions & 0 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: PHP
on:
push:
pull_request:

permissions:
contents: read

jobs:
php-cs-fixer:
permissions:
contents: read # for actions/checkout to fetch code
name: PHP CS Fixer
runs-on: ubuntu-latest
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v3

- name: Get Composer Cache Directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Validate composer config
run: composer validate --strict

- name: Composer Install
run: composer install --ansi --prefer-dist --no-interaction --no-progress

- name: Run PHPCSFixer
run: ./vendor/bin/php-cs-fixer fix --dry-run --diff

- name: Run ergebnis/composer-normalize
run: composer normalize --dry-run --no-check-lock
# phpstan:
# permissions:
# contents: read # for actions/checkout to fetch code
# name: PHP Static Analysis
# runs-on: ubuntu-latest
# strategy:
# matrix:
# php: [ '8.1', '8.2' ]
# fail-fast: false
# steps:
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: '8.1' # will be overriden by platform.php in composer.json see https://phpstan.org/config-reference#phpversion
# extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml
# coverage: none # disable coverage to disable xdebug in the action.
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# - uses: actions/checkout@v3

# - name: Get Composer Cache Directory
# id: composer-cache
# run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

# - name: Cache Composer Directory
# uses: actions/cache@v3
# with:
# path: ${{ steps.composer-cache.outputs.dir }}
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
# restore-keys: ${{ runner.os }}-composer-

# - name: Composer Install
# run: |
# composer install --ansi --prefer-dist --no-interaction --no-progress
# rm composer.lock
# composer config platform.php ${{ matrix.php }}

# - name: Run phpstan
# run: ./vendor/bin/phpstan analyse -c phpstan.neon.dist
# phpunit:
# permissions:
# contents: read # for actions/checkout to fetch code
# name: PHPUnit
# runs-on: ubuntu-latest
# strategy:
# matrix:
# php: [ '8.1', '8.2' ]
# fail-fast: false
# steps:
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: ${{ matrix.php }}
# extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv, simplexml
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# - uses: actions/checkout@v3

# - name: PrestaShop Configuration
# run: cp .github/workflows/phpunit/parameters.yml app/config/parameters.yml

# - name: Get Composer Cache Directory
# id: composer-cache
# run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

# - name: Cache Composer Directory
# uses: actions/cache@v3
# with:
# path: ${{ steps.composer-cache.outputs.dir }}
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
# restore-keys: ${{ runner.os }}-composer-

# - name: Composer Install
# run: composer install --ansi --prefer-dist --no-interaction --no-progress

# - name: Update phpunit version
# if: ${{ startsWith(matrix.php, '8.') }}
# run: composer update -w --ignore-platform-reqs --no-interaction phpunit/phpunit

# - name: Run phpunit
# run: ./vendor/phpunit/phpunit/phpunit -c tests/Unit/phpunit.xml
# env:
# SYMFONY_DEPRECATIONS_HELPER: disabled

# - name: Test git versionned files unchanged
# if: ${{ !startsWith(matrix.php, '8.') }} # composer.lock changes when updating phpunit version
# run: git diff --exit-code
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,8 @@
/phpunit.xml
.phpunit.result.cache
###< phpunit/phpunit ###

###> friendsofphp/php-cs-fixer ###
/.php-cs-fixer.php
/.php-cs-fixer.cache
###< friendsofphp/php-cs-fixer ###
48 changes: 48 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php

ini_set('memory_limit','256M');

$finder = PhpCsFixer\Finder::create()->in([
__DIR__.'/src',
__DIR__.'/migrations',
__DIR__.'/public',
__DIR__.'/tests',
]);

return (new PhpCsFixer\Config())
->setRiskyAllowed(true)
->setRules([
'@Symfony' => true,
'array_indentation' => true,
'cast_spaces' => [
'space' => 'single',
],
'combine_consecutive_issets' => true,
'concat_space' => [
'spacing' => 'one',
],
'error_suppression' => [
'mute_deprecation_error' => false,
'noise_remaining_usages' => false,
'noise_remaining_usages_exclude' => [],
],
'function_to_constant' => false,
'method_chaining_indentation' => true,
'no_alias_functions' => false,
'no_superfluous_phpdoc_tags' => false,
'non_printable_character' => [
'use_escape_sequences_in_strings' => true,
],
'phpdoc_align' => [
'align' => 'left',
],
'phpdoc_summary' => false,
'protected_to_private' => false,
'psr_autoloading' => false,
'self_accessor' => false,
'yoda_style' => false,
'single_line_throw' => false,
'no_alias_language_construct_call' => false,
])
->setFinder($finder)
->setCacheFile(__DIR__.'/var/.php_cs.cache');
11 changes: 0 additions & 11 deletions .php_cs.dist

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# QANightlyResults

QANightlyResults is a Slim Framework app, acting as a backend (via a JSON API) to handle
QANightlyResults is a Symfonyapp, acting as a backend (via a JSON API) to handle
and browse tests reports records.

You can use any frontend app you want to consume this API. We use a [Vue app](https://github.com/PrestaShop/nightly-board).
Expand Down
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{
"name": "prestashop/qanightlyresults",
"description": "QANightlyResults is a Symfony app, acting as a backend (via a JSON API) to handle and browse tests reports records.",
"type": "project",
"license": "MIT",
"minimum-stability": "stable",
Expand All @@ -19,6 +21,7 @@
"symfony/yaml": "7.0.*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.45",
"phpunit/phpunit": "^9.5",
"symfony/browser-kit": "7.0.*",
"symfony/css-selector": "7.0.*",
Expand Down
Loading

0 comments on commit 129d47f

Please sign in to comment.