mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
* Fix phpstan workflow file # Fix phpstan workflow file Line was split in two, joined * qual: set memory limit to 'unlimited' (-1) * Remove some stubs to check impact * Fix: Verify execution time limit * Remove stub files to reuse cache * Qual: Rename distribution phpstan.neon to phpstan.neon.dist # Qual: Rename distribution phpstan.neon to phpstan.neon.dist This allows the developer to override some settings locally Also update the .gitignore file with phpstan.neon and some other other ignores (cache, local log files, temporary edit files). * Enable debug on phpstan * Re-enable stubs * Fix: Change parallel settings to defaults, remove buffer 'buffer' is not a documented parameter, removing it. Removing some configuration settings as the defaults are higher and should adapt better to the target machine
77 lines
2.8 KiB
YAML
77 lines
2.8 KiB
YAML
# This is a basic workflow to check code with PHPSTAN tool
|
|
|
|
name: "PHPStan"
|
|
|
|
# Controls when the workflow will run
|
|
on: [push, pull_request]
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CACHE_KEY_PART: ${{ github.event_name == 'pull_request' && format('{0}-{1}', github.base_ref, github.head_ref) || github.ref_name }}
|
|
GITHUB_JSON: ${{ toJSON(github) }} # Helps in debugging Github Action
|
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
jobs:
|
|
# This workflow contains a single job
|
|
php-stan:
|
|
# The type of runner that the job will run on
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php-version:
|
|
# PHPStan requires PHP >= 7.2.
|
|
#- "7.2"
|
|
- "8.2"
|
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
steps:
|
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
- uses: actions/checkout@v4
|
|
|
|
# Get PHP and addons
|
|
- name: Setup PHP
|
|
id: setup-php
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "${{ matrix.php-version }}"
|
|
tools: phpstan, cs2pr
|
|
extensions: calendar, json, imagick, gd, zip, mbstring, intl, opcache, imap, mysql, pgsql, sqlite3, ldap, xml, mcrypt
|
|
|
|
# Restore old cache
|
|
- name: Restore phpstan cache
|
|
id: cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: ./.github/tmp
|
|
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{ github.run_id }}
|
|
restore-keys: |
|
|
phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-
|
|
phpstan-cache-${{ matrix.php-version }}-${{ github.head_ref }}-
|
|
phpstan-cache-${{ matrix.php-version }}-${{ github.base_ref }}-
|
|
phpstan-cache-${{ matrix.php-version }}-
|
|
- name: Show debug into
|
|
run: cd ./.github/tmp && ls -al
|
|
|
|
# Run PHPStan
|
|
- name: Run PHPStan
|
|
id: phpstan
|
|
run: |
|
|
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings
|
|
# continue-on-error: true
|
|
|
|
# Save cache
|
|
- name: "Save phpstan cache"
|
|
uses: actions/cache/save@v4
|
|
if: ${{ success() || ( ! cancelled() && steps.cache.outputs.cache-hit != 'true' ) }}
|
|
with:
|
|
path: ./.github/tmp
|
|
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{ github.run_id }}
|
|
- name: Provide phpstan log as artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ always() }}
|
|
with:
|
|
name: phpstan-srcrt
|
|
path: ${{ github.workspace }}/_stan.xml
|
|
retention-days: 2
|