Merge pull request #51945 from nextcloud/chore/psalm-test

chore: test that all apps are covered by psalm
This commit is contained in:
John Molakvoæ 2025-04-08 08:35:59 +02:00 committed by GitHub
commit ae0bb4eaa2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 36 additions and 1 deletions

View file

@ -110,6 +110,9 @@ jobs:
- name: Check that all and only expected files are included
run: php ./build/files-checker.php
- name: Check that all shipped apps are linted by psalm
run: sh ./build/psalm-checker.sh
summary:
permissions:
contents: none

View file

@ -8,7 +8,7 @@
/** @var \OCP\Defaults $theme */
// @codeCoverageIgnoreStart
if (!isset($_)) { //standalone page is not supported anymore - redirect to /
require_once '../../lib/base.php';
require_once '../../../lib/base.php';
$urlGenerator = \OCP\Server::get(\OCP\IURLGenerator::class);
header('Location: ' . $urlGenerator->getAbsoluteURL('/'));

31
build/psalm-checker.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
if [ -d "dist" ]; then
missing=''
for app in apps/*; do
if git check-ignore "$app" -q ; then
echo " Ignoring non shipped app: $app"
continue
fi
grep "directory name=\"$app\"" psalm.xml 2>&1 > /dev/null
if [ $? -ne 0 ]; then
missing="$missing - $app\n"
fi
done
if [ "$missing" = "" ]; then
echo "✅ All apps will be linted by psalm"
else
echo "❌ Following apps are not setup for linting using psalm:"
echo -e "$missing"
exit 1
fi
else
echo "⚠️ This script needs to be executed from the root of the repository"
exit 1
fi

View file

@ -36,6 +36,7 @@
<directory name="apps/files_versions"/>
<directory name="apps/lookup_server_connector"/>
<directory name="apps/oauth2"/>
<directory name="apps/profile"/>
<directory name="apps/provisioning_api"/>
<directory name="apps/settings"/>
<directory name="apps/sharebymail"/>