From d31973aa6fa6dec11c9b587e5889d8e92d6d5637 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sat, 22 Aug 2026 21:38:29 +0200 Subject: =?UTF-8?q?Ein=20Befehl=20tr=C3=A4gt=20die=20Fassung=20zum=20Ausli?= =?UTF-8?q?eferungsort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Webpaket ist seit der Umstellung auf Cloudflare Workers zugeschnitten — die Vorkompression abgeschaltet, jede Datei gegen die Grenze von 25 MiB gehalten —, doch der Weg dorthin stand nur im README als Prosa. Wer ausrollen wollte, setzte JAVA_HOME von Hand, rief Maven mit dem richtigen Profil auf und musste sodann wissen, womit statische Dateien zu Cloudflare gelangen und unter welchem Namen. Ein Ausrollen, dessen Schritte nur erinnert werden, geht früher oder später anders aus als das vorige. „wrangler.toml“ nennt den Dienst „aendggner“ und weist auf „target/web“. Ein eigener Worker-Code steht nicht darin und ist auch nicht nötig: Ausgeliefert werden ausschließlich statische Dateien, die Verarbeitung läuft im Browser. Ein Hinweis warnt vor der Namensgleichheit, die hier stiften könnte, was sie sonst klärt — „target/web/worker.js“ ist ein Web Worker des Browsers und für Cloudflare eine statische Datei unter vielen, kein Worker im Sinne der Plattform. „deploy/cloudflare.sh“ tut die beiden Schritte, die zusammengehören: Bauen mit dem Profil „wasm“, was seinerseits „webpaket.sh“ mit Nachoptimierung, Quelltextarchiv und Größenprüfung nach sich zieht, sodann Hochladen. Fehlt JAVA_HOME, so greift der örtliche Pfad zur Oracle GraalVM, denn ohne sie gibt es kein Web Image. Beide Schritte lassen sich einzeln anfordern („--nur-bauen“, „--nur-hochladen“), wenn das eine schon geschehen ist und nur das andere aussteht. Ein fehlendes „wrangler“ im Pfad fällt auf „npx“ zurück. Nicht mitgeliefert ist eine „_headers“-Datei. Zwischenspeicherung und MIME-Typ regelt Cloudflare für Assets von sich aus so, wie es die nginx-Fassung tut — revalidiert wird bei jedem Abruf, das Modul kommt als „application/wasm“. Die Sicherheitskopfzeilen samt Content-Security-Policy deckt das nicht ab; sie nachzureichen bleibt offen und verlangte, dass „webpaket.sh“ die Datei ins Auslieferungsverzeichnis trüge. Berührt sind allein Dateien des Ausrollens; am Quelltext ändert sich nichts. Der Bau selbst ist hier nicht gelaufen, wohl aber die Prüfung der Konfiguration: „wrangler deploy --dry-run“ liest sie und das vorhandene Auslieferungsverzeichnis anstandslos. Co-Authored-By: Claude Opus 5 Change-Id: I90df9f4cdd2c01f12941f979fc997756d2b4e012 --- deploy/cloudflare.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 deploy/cloudflare.sh (limited to 'deploy') diff --git a/deploy/cloudflare.sh b/deploy/cloudflare.sh new file mode 100755 index 0000000..d64325f --- /dev/null +++ b/deploy/cloudflare.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# Baut die Browserfassung und schiebt sie zu Cloudflare Workers (README § 15). +# +# 1. ./mvnw -Pwasm package — erzeugt target/web und lässt deploy/webpaket.sh darüber +# laufen (wasm-opt, Quelltext-Tarball, 25-MiB-Prüfung). Bricht bei uneingecheckten +# Änderungen ab, denn der beigelegte Quelltext muss der gebaute sein. +# 2. wrangler deploy — lädt target/web nach wrangler.toml hoch. +# +# JAVA_HOME muss auf Oracle GraalVM 25.1 oder neuer zeigen; ist es nicht gesetzt, wird +# /Library/Java/JavaVirtualMachines/graalvm-25.jdk genommen. +# +# Aufruf: deploy/cloudflare.sh [--nur-bauen | --nur-hochladen] + +set -eu + +wurzel="$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd)" +cd "$wurzel" + +: "${JAVA_HOME:=/Library/Java/JavaVirtualMachines/graalvm-25.jdk/Contents/Home}" +export JAVA_HOME + +bauen=1 +hochladen=1 +case "${1:-}" in + --nur-bauen) hochladen=0 ;; + --nur-hochladen) bauen=0 ;; + '') ;; + *) echo "cloudflare: unbekannte Angabe „$1“ (--nur-bauen | --nur-hochladen)" >&2; exit 2 ;; +esac + +if [ "$bauen" = 1 ]; then + ./mvnw -Pwasm package +fi + +if [ "$hochladen" = 1 ]; then + if command -v wrangler >/dev/null 2>&1; then + wrangler deploy + else + npx --yes wrangler deploy + fi +fi -- cgit v1.2.1