diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..a9b41118b --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,31 @@ +name: "Code Linting" +on: + push: + branches: + - master + pull_request: + +jobs: + php-cs-fixer: + name: 'PHP-CS-Fixer' + runs-on: 'ubuntu-latest' + steps: + - uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.2 + tools: php-cs-fixer:3.45, cs2pr + + - uses: actions/cache@v3 + with: + path: '.php-cs-fixer.cache' + key: ${{ github.repository }}-8.2-phpcsfixer-${{ github.ref_name }} + restore-keys: | + ${{ github.repository }}-8.2-phpcsfixer-master + ${{ github.repository }}-8.2-phpcsfixer- + + - name: Run PHP-CS-Fixer + # Using cs2pr settings, see: https://github.com/shivammathur/setup-php#tools-with-checkstyle-support + run: 'php-cs-fixer fix --dry-run --format checkstyle | cs2pr' diff --git a/.gitignore b/.gitignore index 4a2fca764..fbd5e2aaf 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ tests/DoctrineTest/doctrine_tests/* /tests/tmp /tests/foo.sq3 /vendor/ +.php-cs-fixer.cache diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 100644 index 000000000..a2c50e0f1 --- /dev/null +++ b/.php-cs-fixer.dist.php @@ -0,0 +1,24 @@ +ignoreVCSIgnored(true) + ->in(__DIR__.'/lib') + ->in(__DIR__.'/tests') + ->append(array(__FILE__)) + // Exclude generated files (single files) + ->notPath('should-be-ignored.php') +; + +$config = new PhpCsFixer\Config(); +$config->setRules(array( + '@PhpCsFixer' => true, + '@Symfony' => true, + 'array_syntax' => array( + 'syntax' => 'long', + ), +)) + ->setCacheFile('.php-cs-fixer.cache') + ->setFinder($finder) +; + +return $config;