Vai al contenuto

Creazione

Crea dall'host

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

Rudel genera un ID dal nome seguito da quattro caratteri esadecimali (ad esempio alpha-3be7), clona le tabelle WordPress dell'host usando un prefisso di tabella generato, copia il tema selezionato nella directory della sandbox e registra la sandbox nel database WordPress dell'host. siteurl e home della sandbox mantengono URL dell'host.

Se si omette --theme, Rudel usa il tema attivo del sito host. Il tema deve essere installato sull'host. Un tema child porta con sé anche il tema padre.

Viene copiata ogni tabella con il prefisso delle tabelle dell'host, incluse users e usermeta, a eccezione delle tabelle proprie di Rudel. Nella versione corrente questo include anche le tabelle delle sandbox già esistenti, quindi ogni nuova sandbox è più grande della precedente. Vedi issue #3.

Crea da un'altra sandbox

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

La nuova sandbox riceve una copia di ogni tabella con il prefisso della sandbox sorgente, incluse le tabelle degli snapshot della sorgente, e del relativo tema. Le directory degli snapshot non vengono copiate, quindi quelle tabelle restano inutilizzate nella nuova sandbox (issue #12). Se la directory del tema sorgente è un repository Git, Rudel crea un worktree collegato sul ramo rudel/{new-id} invece di una semplice copia. L'ID sorgente viene registrato nel nuovo record.

Metadati del ciclo di vita

Le sandbox possono contenere metadati per la pulizia e la proprietà:

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

Usate --protected quando la pulizia automatica non deve rimuovere la sandbox. Vedi Regole.

Limiti

La creazione non riesce se viene raggiunto il valore di max_sandboxes o max_disk_mb. Per impostazione predefinita, entrambi sono 0, che significa nessun limite. Vedi Configurazione.

Checkout di Git

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

Rudel crea la sandbox, clona il repository remoto in themes/my-theme all'interno della directory della sandbox e sposta il checkout sul branch rudel/{id}. Aggiungete --type=plugin per clonare invece in plugins/my-theme. Se la clonazione non riesce, la sandbox rimane al suo posto e viene mostrato un avviso. Per sapere cosa la sandbox serve da quel checkout, consultate Git.

Struttura delle directory

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