Fassung 1.4.1: dem Releasearchiv fehlten migrations.php und cli-config.php
Auf dem Hosting brach die Installation im dritten Schritt ab - "The configuration file does not exist", genau dort, wo die Tabellen entstehen sollten. Beide Dateien standen weder in der Mitnahme- noch in der Ausschlussliste des Releaseskripts. Ein Test ordnet jetzt jeden Eintrag im Projektstamm einer der beiden Listen zu: was neu dazukommt und unbedacht bleibt, laesst ihn fehlschlagen. Der Installationsweg wurde danach vollstaendig durchgespielt - 3504 Dateien entpackt, 14 Migrationen ausgefuehrt, 15 Tabellen angelegt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c5e85e4db0
commit
c517173579
4 files changed
+37
-3
No files matched your search
@@ -1047,6 +1047,36 @@ final class CmsTest extends TestCase
|
||||
}
|
||||
}
|
||||
|
||||
public function testTheReleaseArchiveCarriesEveryFileTheApplicationNeeds(): void
|
||||
{
|
||||
// Auf dem Hosting gefunden, nicht hier: „The configuration file does not exist" beim
|
||||
// Anlegen der Tabellen. Im Releasearchiv fehlte migrations.php - die Datei, die Doctrine
|
||||
// sagt, wo die Migrationen liegen. Sie stand weder in der Mitnahmeliste noch in der
|
||||
// Ausschlussliste, also fiel niemandem auf, dass sie fehlt.
|
||||
$skript = (string) file_get_contents(__DIR__.'/../scripts/build-release.php');
|
||||
preg_match('/\$include = \[(.+?)\];/s', $skript, $mit);
|
||||
preg_match('/\$skip = \[(.+?)\];/s', $skript, $ohne);
|
||||
self::assertNotEmpty($mit, 'Die Mitnahmeliste des Releaseskripts ist nicht auffindbar.');
|
||||
$liste = static fn (string $roh): array => array_map(
|
||||
static fn (string $eintrag): string => trim($eintrag, " '
|
||||
"),
|
||||
explode(',', preg_replace('#//[^
|
||||
]*#', '', $roh) ?? ''),
|
||||
);
|
||||
$eingeordnet = [...$liste($mit[1]), ...$liste($ohne[1] ?? ''), '.env', '.env.local', 'LICENSE'];
|
||||
|
||||
foreach (scandir(__DIR__.'/..') ?: [] as $eintrag) {
|
||||
if (in_array($eintrag, ['.', '..'], true) || str_starts_with($eintrag, '.git')) {
|
||||
continue;
|
||||
}
|
||||
self::assertContains(
|
||||
$eintrag,
|
||||
$eingeordnet,
|
||||
sprintf('„%s" steht im Projektstamm, aber weder in der Mitnahme- noch in der Ausschlussliste von build-release.php. Ein Release ohne diese Datei fällt erst auf dem Hosting auf.', $eintrag),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function testNoStylesheetHasADanglingSelector(): void
|
||||
{
|
||||
// Gefunden, als der Einwilligungsdialog plötzlich ungestaltet unter dem Fuß stand: beim
|
||||
|
||||
Reference in new issue
Block a user