| # This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# PHPMD is a spin-off project of PHP Depend and
# aims to be a PHP equivalent of the well known Java tool PMD.
# What PHPMD does is: It takes a given PHP source code base
# and look for several potential problems within that source.
# These problems can be things like:
#   Possible bugs
#   Suboptimal code
#   Overcomplicated expressions
#   Unused parameters, methods, properties
# More details at https://phpmd.org/
name: PHPMD
on:
  workflow_dispatch:
  push:
    branches: [ "master" ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ "master" ]
  schedule:
    - cron: '29 4 * * 0'
permissions:
  contents: read
jobs:
  PHPMD:
    name: Run PHPMD scanning
    runs-on: ubuntu-latest
    permissions:
      contents: read # for checkout to fetch code
      security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
      actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Setup PHP
        uses: shivammathur/setup-php@master
        with:
          php-version: 8.2
          coverage: none
          tools: phpmd
      - name: Run PHPMD
        run: phpmd . sarif codesize --reportfile phpmd-results.sarif
        continue-on-error: true
      - name: Upload analysis results to GitHub
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: phpmd-results.sarif
          wait-for-processing: true
 |