Statisches Veröffentlichen auf der Kommandozeile und in CI
Alles, was die Administration unter Setup > Statisches Veröffentlichen tut, ist ein Konsolenbefehl, und jeder Befehl gibt auf Wunsch JSON aus. Das macht statisches Veröffentlichen leicht zu skripten und in CI auszuführen.
Was Sie am Ende haben
- Einen Build, eine Linkprüfung und eine Veröffentlichung, die Sie aus einer Shell oder einer Pipeline starten können.
- Einen CI-Workflow, der Exponential installiert, die statische Kopie baut und sie auf GitHub Pages ausliefert.
Die Befehle
php bin/php/expstatictargets.php # Ziele und ihre Prüfungen
php bin/php/expstaticbuild.php demo --dry-run # was sich ändern würde
php bin/php/expstaticbuild.php demo --report=var/tmp/report.json
php bin/php/expstaticdiff.php demo --check-links --mount=/ --mount=/my-site/
php bin/php/expstaticserve.php demo # Vorschau auf 127.0.0.1:8090
php bin/php/expstaticpublish.php demo --message="Frühjahrsupdate"
php bin/php/expstaticrollback.php demo 3 --applyDieselben Befehle laufen über die Konsole als exp:static:build und so weiter. --format=json gibt ein Dokument mit
dem Schema exp-static/1 aus. Exit-Codes: 0 erledigt, 1 fehlgeschlagen, 2 Aufruf, 3 Datenbank nicht erreichbar,
4 interner Fehler. Referenz: die Funktionsseite und die
generierte Seite exp:static:build.
Teil-Builds
--nodes=12,34 oder --paths=/a,/b bauen nur diese Seiten neu und behalten den Rest; das nutzt auch das
Veröffentlichen beim Veröffentlichen von Inhalten.
In CI
Die Vorlage exponential-static-site-starter hat einen GitHub-Actions-Workflow, der Exponential mit Ihrem Code installiert, einen Datenbank-Dump oder ein Site-Paket lädt, die Kopie baut und sie mit der eigenen Action von GitHub Pages ausliefert. Klicken Sie Use this template und folgen Sie ihrer README.
In Ihrer eigenen Pipeline:
- setzen Sie
CrawlURLauf die Adresse, auf der der CI-Webserver lauscht; Links zur Live-Site nutzen dannLiveURL; - übergeben Sie den Token als Umgebungsvariable und verwenden Sie
Credential=token:env:<VARIABLE>; - lassen Sie den Job bei einem Exit-Code ungleich null von
exp:static:diff --check-linksscheitern.
Gut zu wissen
- Builds crawlen über HTTP als anonymer Benutzer, der Webserver muss während des Builds also laufen.
- Der Zielordner ist ein eigenes Git-Repository; legen Sie ihn nicht in Ihr Code-Repository.
- Pushes werden nie erzwungen und Tags nie verschoben; eine Rücknahme ist ein neuer Commit.
Mehr: Links und Basispfad, Wenn eine Veröffentlichung fehlschlägt.
Jetzt Ihre eigene erstellen
Beginnen Sie mit In 15 Minuten eine kostenlose Website und bringen Sie es dann mit dem Starter in CI.