diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml new file mode 100644 index 00000000..4f40268c --- /dev/null +++ b/.github/workflows/static-analysis.yml @@ -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 diff --git a/composer.json b/composer.json index f5e7f9c3..731f06a1 100644 --- a/composer.json +++ b/composer.json @@ -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" } } diff --git a/composer.lock b/composer.lock index 6c11c389..cb9f6ae2 100644 --- a/composer.lock +++ b/composer.lock @@ -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" } diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 00000000..77f99494 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +