name: Psalm static code analysis on: pull_request: concurrency: group: static-code-analysis-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: static-code-analysis: runs-on: ubuntu-latest if: ${{ github.repository_owner != 'nextcloud-gmbh' }} steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: submodules: true - name: Set up php uses: shivammathur/setup-php@v2 with: php-version: '8.0' extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip coverage: none env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Composer install run: composer i - name: Psalm run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif - name: Show potential changes in Psalm baseline if: always() run: git diff -- . ':!lib/composer' - name: Upload Analysis results to GitHub if: always() uses: github/codeql-action/upload-sarif@v2 with: sarif_file: results.sarif static-code-analysis-security: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: submodules: true - name: Set up php uses: shivammathur/setup-php@master with: php-version: '8.0' extensions: ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip coverage: none - name: Composer install run: composer i - name: Psalm taint analysis run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis - name: Upload Security Analysis results to GitHub if: always() uses: github/codeql-action/upload-sarif@v2 with: sarif_file: results.sarif static-code-analysis-ocp: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 with: submodules: true - name: Set up php uses: shivammathur/setup-php@v2 with: php-version: '8.0' extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip coverage: none env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Composer install run: composer i - name: Psalm run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline - name: Show potential changes in Psalm baseline if: always() run: git diff -- . ':!lib/composer'