Add psalm

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2020-12-29 16:09:49 +01:00
parent d31d2a2ebb
commit 06546438e1
No known key found for this signature in database
GPG Key ID: F941078878347C0C
4 changed files with 97 additions and 3 deletions

26
.github/workflows/static-analysis.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Static analysis
on: [pull_request]
jobs:
static-psalm-analysis:
runs-on: ubuntu-latest
strategy:
matrix:
ocp-version: [ 'dev-master' ]
name: Nextcloud ${{ matrix.ocp-version }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up php
uses: shivammathur/setup-php@master
with:
php-version: 7.4
tools: composer:v1
coverage: none
- name: Install dependencies
run: composer i
- name: Install dependencies
run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }}
- name: Run coding standards check
run: composer run psalm

View File

@ -10,10 +10,12 @@
"scripts": {
"cs:fix": "php-cs-fixer fix",
"cs:check": "php-cs-fixer fix --dry-run --diff",
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l"
"lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l",
"psalm": "psalm.phar"
},
"require-dev": {
"nextcloud/coding-standard": "^0.4.0",
"phpunit/phpunit": "^7"
"phpunit/phpunit": "^7",
"psalm/phar": "^4.3"
}
}

36
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ebb4ce5e997a9089c170172fbfb9e83f",
"content-hash": "8bfeacd0cfc0148e47f2c358d639fab9",
"packages": [],
"packages-dev": [
{
@ -1261,6 +1261,37 @@
],
"time": "2020-01-08T08:45:45+00:00"
},
{
"name": "psalm/phar",
"version": "4.3.1",
"source": {
"type": "git",
"url": "https://github.com/psalm/phar.git",
"reference": "f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/psalm/phar/zipball/f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee",
"reference": "f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"conflict": {
"vimeo/psalm": "*"
},
"bin": [
"psalm.phar"
],
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Composer-based Psalm Phar",
"time": "2020-12-03T21:44:12+00:00"
},
{
"name": "psr/container",
"version": "1.0.0",
@ -3505,5 +3536,8 @@
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
"platform-overrides": {
"php": "7.3"
},
"plugin-api-version": "1.1.0"
}

32
psalm.xml Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<psalm
errorLevel="4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
errorBaseline="tests/psalm-baseline.xml"
>
<projectFiles>
<directory name="lib" />
</projectFiles>
<extraFiles>
<directory name="vendor/christophwurst/nextcloud" />
</extraFiles>
<issueHandlers>
<UndefinedClass>
<errorLevel type="suppress">
<referencedClass name="OC" />
<referencedClass name="Doctrine\DBAL\Types\Type"/>
</errorLevel>
</UndefinedClass>
<UndefinedDocblockClass>
<errorLevel type="suppress">
<referencedClass name="Doctrine\DBAL\Driver\Statement" />
<referencedClass name="Doctrine\DBAL\Schema\Schema" />
<referencedClass name="Doctrine\DBAL\Schema\SchemaException" />
<referencedClass name="Doctrine\DBAL\Schema\Table" />
<referencedClass name="Doctrine\DBAL\Statement" />
</errorLevel>
</UndefinedDocblockClass>
</issueHandlers>
</psalm>