--- 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