Zum Inhalt springen

Erstellen

Auf dem Host erstellen

Shell
wp rudel create --name=alpha --theme=twentytwentyfour

Rudel generiert aus dem Namen und vier Hexadezimalzeichen eine ID (zum Beispiel alpha-3be7), klont die Tabellen des Host-WordPress in ein generiertes Tabellenpräfix, kopiert das ausgewählte Theme in das Sandbox-Verzeichnis und speichert die Sandbox in der Host-WordPress-Datenbank. siteurl und home der Sandbox behalten die URL des Hosts.

Wenn --theme weggelassen wird, verwendet Rudel das aktive Theme der Host-Website. Das Theme muss auf dem Host installiert sein. Bei einem Child-Theme wird auch das übergeordnete Theme übernommen.

Jede Tabelle mit dem Tabellenpräfix des Hosts wird kopiert, einschließlich users und usermeta, außer den eigenen Tabellen von Rudel. In der aktuellen Version umfasst das auch die Tabellen bereits vorhandener Sandboxes, sodass jede neue Sandbox größer ist als die vorherige. Siehe Issue #3.

Aus einer anderen Sandbox erstellen

Shell
wp rudel create --name=feature-b --clone-from=alpha-3be7

Die neue Sandbox erhält eine Kopie jeder Tabelle mit dem Präfix der Quell-Sandbox, einschließlich ihrer Snapshot-Tabellen, sowie ihres Themes. Snapshot-Verzeichnisse werden nicht kopiert, daher bleiben diese Tabellen in der neuen Sandbox ungenutzt (Issue #12). Wenn das Theme-Verzeichnis der Quelle ein Git-Repository ist, erstellt Rudel einen verknüpften Worktree auf dem Branch rudel/{new-id} statt einer einfachen Kopie. Die Quell-ID wird im neuen Datensatz gespeichert.

Lebenszyklus-Metadaten

Sandboxes können Metadaten für Bereinigung und Zuständigkeit enthalten:

Shell
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7

Verwende --protected, wenn die automatische Bereinigung die Sandbox nicht entfernen darf. Siehe Richtlinie.

Limits

Die Erstellung schlägt fehl, sobald die Einstellung max_sandboxes oder max_disk_mb erreicht ist. Beide sind standardmäßig auf 0 gesetzt, was unbegrenzt bedeutet. Siehe Konfiguration.

Git-Checkouts

Shell
wp rudel create --name=feature-a --git=https://example.test/my-theme.git

Rudel erstellt die Sandbox, klont das Remote-Repository nach themes/my-theme im Sandbox-Verzeichnis und wechselt im Checkout zum Branch rudel/{id}. Mit --type=plugin wird stattdessen nach plugins/my-theme geklont. Bei einem fehlgeschlagenen Klon bleibt die Sandbox bestehen und es wird eine Warnung ausgegeben. Unter Git erfährst du, was die Sandbox aus diesem Checkout bereitstellt.

Verzeichnisstruktur

Text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active