forked from Wavyzz/dolibarr
* Qual: Add phan flow - Add phan configuration (config, baseline, stubs); - Add github action; - Update apstats.php. * Add directives to ignore false phan notices * Qual: Add typing hints for extrafields TPL files # Qual: Add typing hints for extrafields TPL files Add typing hints for phan on view files --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
56 lines
1.7 KiB
YAML
56 lines
1.7 KiB
YAML
---
|
|
on:
|
|
pull_request:
|
|
push:
|
|
schedule:
|
|
# execute once a day, the 1st
|
|
- cron: 10 9 * * *
|
|
workflow_dispatch:
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
env:
|
|
# Do pull analysis on schedule or manual dispatch
|
|
PHAN_CONFIG: >
|
|
${{
|
|
( github.event.schedule || github.event_name == 'workflow_dispatch' )
|
|
&& 'dev/tools/phan/config_extended.php'
|
|
|| 'dev/tools/phan/config.php'
|
|
}}
|
|
PHAN_BASELINE: dev/tools/phan/baseline.txt
|
|
PHAN_MIN_PHP: 7.0
|
|
PHAN_QUICK: ${{ github.event.schedule && '' || '--quick' }}
|
|
GITHUB_JSON: ${{ toJSON(github) }} # Helps in debugging Github Action
|
|
name: phan
|
|
jobs:
|
|
phan:
|
|
name: Run phan
|
|
runs-on: ubuntu-latest
|
|
# Do not run schedule on forks
|
|
if: |
|
|
github.repository == 'Dolibarr/dolibarr'
|
|
|| github.event.schedule == false
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.2
|
|
coverage: none # disable xdebug, pcov
|
|
tools: cs2pr,phan
|
|
- name: Run Phan analysis
|
|
run: |
|
|
phan $PHAN_QUICK -k $PHAN_CONFIG -B $PHAN_BASELINE --analyze-twice --minimum-target-php-version $PHAN_MIN_PHP --output-mode=checkstyle -o _phan.xml
|
|
- name: Add results to PR
|
|
if: ${{ always() }}
|
|
run: |
|
|
cs2pr --prepend-filename --prepend-source --notices-as-warnings _phan.xml
|
|
- name: Provide phan log as artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ always() }}
|
|
with:
|
|
name: phan-srcrt
|
|
# path: ${{ github.workspace }}/phan.log
|
|
path: ${{ github.workspace }}/_phan.xml
|
|
retention-days: 2
|