Backport ci optimizations
This commit is contained in:
parent
79242074f5
commit
349c283a4a
1 changed files with 43 additions and 8 deletions
51
.github/workflows/phan.yml
vendored
51
.github/workflows/phan.yml
vendored
|
|
@ -33,7 +33,7 @@ jobs:
|
|||
github.repository == 'Dolibarr/dolibarr'
|
||||
|| github.event.schedule == false
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
# Another method to get the list of changed files
|
||||
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
|
||||
|
|
@ -49,17 +49,52 @@ jobs:
|
|||
with:
|
||||
php-version: 8.2
|
||||
coverage: none # disable xdebug, pcov
|
||||
tools: phan:5.5.2
|
||||
extensions: ast
|
||||
tools: cs2pr:1.8.6,phan:5.5.2
|
||||
|
||||
|
||||
- name: Run Phan analysis
|
||||
if: "! cancelled() && steps.changed-php.outputs.any_changed == 'true'"
|
||||
# Proceed when:
|
||||
# - the action is not cancelled
|
||||
# AND
|
||||
# - the branch is an integration branch (no merge), or,
|
||||
# - the merge from branch contains 'phan_full', or,
|
||||
# - there are changes in PHP files.
|
||||
# Note: --output-mode=github does not provide file:line, so using checkstyle and cs2pr
|
||||
if: ${{ ! cancelled() && (github.ref_name == 'develop' || github.ref_name == 'refs/heads/develop' || endsWith(github.ref_name, '.0') || contains(github.head_ref, 'phan_full') || steps.changed-php.outputs.phan_changed == 'true') }}
|
||||
env:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
|
||||
PHAN_CHANGED_FILES: ${{ steps.changed-php.outputs.phan_changed_files }}
|
||||
# shellcheck disable=2086
|
||||
FILE_CHANGED_LIST: /tmp/phan-changed.lst
|
||||
run: |
|
||||
# shellcheck disable=2086
|
||||
> /tmp/phpstan-files.txt
|
||||
for f in $ALL_CHANGED_FILES; do echo "$f" >> /tmp/phan-files.txt; done
|
||||
cat /tmp/phan-files.txt
|
||||
echo phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
|
||||
phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
|
||||
if [ "${{ github.ref_name }}" == "develop" ] || [[ "${{ github.ref_name }}" == *.0 ]]|| [[ "${{ github.head_ref }}" == *"phan_full"* ]] ; then
|
||||
echo phan $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=checkstyle -o _phan.xml
|
||||
phan $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=checkstyle -o _phan.xml
|
||||
else
|
||||
echo -n "" > "$FILE_CHANGED_LIST"
|
||||
for f in $PHAN_CHANGED_FILES; do echo "$f" >> "$FILE_CHANGED_LIST"; done
|
||||
# Must exclude same files as in phan configuration
|
||||
grep -v -E '^htdocs/(custom/|.*/canvas/.*/tpl/.*.tpl.php|admin/tools/ui/|includes/(nusoap/|restler/|stripe/)|conf/conf.php)$' "$FILE_CHANGED_LIST"> "$FILE_CHANGED_LIST".tmp || true
|
||||
mv "$FILE_CHANGED_LIST".tmp "$FILE_CHANGED_LIST"
|
||||
if [ ! -s "$FILE_CHANGED_LIST" ] ; then
|
||||
echo "All changed files are excluded for phan"
|
||||
else
|
||||
echo phan --file-list "$FILE_CHANGED_LIST" $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=checkstyle -o _phan.xml
|
||||
phan --file-list "$FILE_CHANGED_LIST" $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=checkstyle -o _phan.xml
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Add results to PR as Github notices
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
cs2pr --prepend-filename --prepend-source --notices-as-warnings _phan.xml
|
||||
|
||||
- name: Provide phan log as artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
if: ${{ always() }}
|
||||
with:
|
||||
name: phan-srcrt
|
||||
path: ${{ github.workspace }}/_phan.xml
|
||||
retention-days: 2
|
||||
|
|
|
|||
Loading…
Reference in a new issue