зеркало из https://github.com/nextcloud/server.git
Add test to check if new files are added to the root of the repository
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
Родитель
13295c2d1d
Коммит
844e7b03b4
|
@ -37,6 +37,9 @@ for app in $(find "apps/" -mindepth 1 -maxdepth 1 -type d -exec basename {} \;);
|
|||
RESULT=$(($RESULT+$?))
|
||||
done;
|
||||
|
||||
php ./build/files-checker.php
|
||||
RESULT=$(($RESULT+$?))
|
||||
|
||||
php ./build/signed-off-checker.php
|
||||
RESULT=$(($RESULT+$?))
|
||||
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Morris Jobke <hey@morrisjobke.de>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
$expectedFiles = [
|
||||
'.',
|
||||
'..',
|
||||
'.bowerrc',
|
||||
'.codecov.yml',
|
||||
'.drone.yml',
|
||||
'.git',
|
||||
'.github',
|
||||
'.gitignore',
|
||||
'.gitmodules',
|
||||
'.htaccess',
|
||||
'.idea',
|
||||
'.jshintrc',
|
||||
'.lgtm',
|
||||
'.mailmap',
|
||||
'.scrutinizer.yml',
|
||||
'.tag',
|
||||
'.user.ini',
|
||||
'3rdparty',
|
||||
'apps',
|
||||
'AUTHORS',
|
||||
'autotest-checkers.sh',
|
||||
'autotest-external.sh',
|
||||
'autotest-hhvm.sh',
|
||||
'autotest-js.sh',
|
||||
'autotest.sh',
|
||||
'bower.json',
|
||||
'build',
|
||||
'buildjsdocs.sh',
|
||||
'CHANGELOG.md',
|
||||
'composer.json',
|
||||
'config',
|
||||
'console.php',
|
||||
'contribute',
|
||||
'CONTRIBUTING.md',
|
||||
'COPYING',
|
||||
'COPYING-README',
|
||||
'core',
|
||||
'cron.php',
|
||||
'db_structure.xml',
|
||||
'index.html',
|
||||
'index.php',
|
||||
'issue_template.md',
|
||||
'l10n',
|
||||
'lib',
|
||||
'occ',
|
||||
'ocs',
|
||||
'ocs-provider',
|
||||
'public.php',
|
||||
'README.md',
|
||||
'remote.php',
|
||||
'resources',
|
||||
'robots.txt',
|
||||
'settings',
|
||||
'status.php',
|
||||
'tests',
|
||||
'themes',
|
||||
'version.php',
|
||||
];
|
||||
$actualFiles = [];
|
||||
|
||||
$files = new \DirectoryIterator(__DIR__ . '/..');
|
||||
foreach ($files as $file) {
|
||||
$actualFiles[] = $file->getFilename();
|
||||
}
|
||||
|
||||
$additionalFiles = array_diff($actualFiles, $expectedFiles);
|
||||
$missingFiles = array_diff($expectedFiles, $actualFiles);
|
||||
|
||||
$failed = false;
|
||||
if (count($additionalFiles) > 0) {
|
||||
echo sprintf('ERROR: There were %d additional files:', count($additionalFiles)) . PHP_EOL;
|
||||
echo implode(PHP_EOL, $additionalFiles) . PHP_EOL;
|
||||
$failed = true;
|
||||
}
|
||||
if (count($missingFiles) > 0) {
|
||||
echo sprintf('ERROR: There were %d missing files:', count($missingFiles)) . PHP_EOL;
|
||||
echo implode(PHP_EOL, $missingFiles) . PHP_EOL;
|
||||
$failed = true;
|
||||
}
|
||||
|
||||
if ($failed) {
|
||||
echo 'ERROR: Please remove or add those files again or inform the release team about those now files to be included or excluded from the release tar ball.' . PHP_EOL;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo 'OK: all expected files are present and no additional files are there.' . PHP_EOL;
|
||||
exit(0);
|
Загрузка…
Ссылка в новой задаче